`
weihe6666
  • 浏览: 429828 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C++ strtok的用法

    博客分类:
  • C++
阅读更多
strtok的用法


函数原型:char *strtok(char *s, char *delim);
函数功能:把字符串s按照字符串delim进行分割,然后返回分割的结果。

函数使用说:

1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。

2.strtok函数以后的调用时的需用NULL来替换s.

3.形参s(要分割的字符串)对应的变量应用char s[]=”….”形式,而不能用char *s=”….”形式

    #include <stdio.h>

    #include <string.h>
    void  main()
    {
    char buf[]=”Golden Global View”;
    char* token = strtok( buf, ” “);
    while( token != NULL )
        {
            printf( ”%s “, token );
            token = strtok( NULL, ” “);
        }
    return 0;
    }

其结果为:

Golden
Global
View


其中第3条不知为何,我的理解是char *s 中的s保存的是字符串的首地址,它在内存中所分配的内存是连续的,但是超过字符串的长度后,其内存中的内容不可知;而char s[],它在内存中的分配也是连续的,但是超过字符串的长度后,其内存中的内容全部为'/0'。

例如
#include <iostream>
using namespace std;

int main()
{
    char *temp = "hewei";
	char Parms[6] = "hewei";
	int len = strlen(temp);
	int Temp_len = strlen(Parms);
	for(int i = 0; i< strlen(temp); i++)
	{
          cout << temp[i] << " " << Parms[i] << endl;
	}
	return 0;
}

其调试结果:
+		temp	0x00417800 "hewei"	char *
		Parms[8]	-52	char
+		&Parms[0]	0x0012ff4c "hewei"	char *
+		&Parms[1]	0x0012ff4d "ewei"	char *
+		&Parms[2]	0x0012ff4e "wei"	char *
+		&Parms[3]	0x0012ff4f "ei"	char *
+		&Parms[4]	0x0012ff50 "i"	char *
+		&Parms[5]	0x0012ff51 ""	char *
+		&Parms[6]	0x0012ff52 "烫烫烫烫烫"	char *
+		&temp[3]	0x00417803 "ei"	char *
+		&temp[4]	0x00417804 "i"	char *
+		&temp[5]	0x00417805 ""	char *
+		&temp[6]	0x00417806 ""	char *
+		&temp[7]	0x00417807 ""	char *
+		&temp[8]	0x00417808 ""	char *
		temp[6]	0	char
		temp[7]	0	char
+		temp	0x00417800 "hewei"	char *

分享到:
评论

相关推荐

    C++ strtok应用方式浅析

    在C++编程语言中,对于字符的处理,可以通过使用C++ strtok来进行具体的操作。那么正确的应用方法我们将会在这篇文章中为大家详细介绍,希望能对大家有所帮助,提高实际程序开发效率。

    C语言切割多层字符串(strtok_r strtok使用方法)

    主要介绍了C语言切割多层字符串的方法,说了strtok的弱点,使用strtok_r的方法

    C++中strtok()函数的用法介绍

    函数原型:char *strtok(char *s, const char *delim);Function:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。Description:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串...

    C++常用字符串分割方法实例汇总

    本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考。具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *...

    《C++String深入详解2.0版》PDF

    一、 C++的string的使用 3 1.1 C++ string简介 3 1.2 string的成员 3 1.2.1 append 3 1.2.2 assign 4 1.2.3 at 4 1.2.4 begin 5 1.2.5 c_str 5 1.2.6 capacity 5 1.2.7 clear 6 1.2.8 compare 6 1.2.9 copy 6 1.2.10...

    strtok函数的使用示例

    strtok函数是字符串函数库中的一个函数,函数原型如下: char *strtok(char s[], const char *delim); 作用:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。 例如:”hello,hi:what?is!the....

    《深入学习c++string》2.1版

    一、 C++的string的使用 4 1.1 C++ string简介 4 1.2 string的成员 4 1.2.1 append 4 1.2.2 assign 5 1.2.3 at 5 1.2.4 begin 6 1.2.5 c_str 6 1.2.6 capacity 6 1.2.7 clear 7 1.2.8 compare 7 1.2.9 copy 7 1.2.10...

    C字符串函数对应的C++ string操作详解

    string是STL里的标准类,习惯了使用指针操作C的char *字符串,刚开始并不是很适应,主要原因是对string.h里的函数没有找到合适的C++替换方法,因此,对常用的sring.h里的函数替换说明如下: strcpy: str.substr() ...

    Arduino-CommandLine:废话串行命令行解释器

    命令行v2.1.0 适用于Arduino的便捷串行命令行... 如果输入字符串与命令匹配(第一个匹配),则将对其余参数使用char *调用附加的回调(应使用strtok进行解析)。 在版本2.1.0中添加了对历史记录的基本支持。 配置 该

Global site tag (gtag.js) - Google Analytics