C语言之strtok函数,c语言strtol函数用法

关于c语言字符串中切割函数strtok的用法

strtok()函数并不像你想的那样可以一次切割字串。需要多次循环,第二次时需要用 p = strtok(NULL, " "); 这样的 形式。

麻城网站建设公司成都创新互联公司,麻城网站设计制作,有大型网站制作公司丰富经验。已为麻城1000+提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的麻城做网站的公司定做!

void main()

{ char test1[] = "Hello C World";

char *p;

p = strtok(test1, " ");

while(p)

{

printf("%s\n", p);

p = strtok(NULL, " ");

}

return 0;

}

运行结果:

Hello

C

World

C语言 关于strtok函数,求大神!

直接的问题出在这句:

strcpy(str,s2);

strtok返回的指针,指向是str中相对位置;你s2之后,把s2再拷贝会str,这时的str变成了(A,C),而前面的s1指向的是str的相对位置,因此s1的指向,也从原来的(A,B)变成了(A,C),因此后面的结果也变了。

你起码应该引入新变量,char str2[]; 然后

strcpy(str2,s2);

又:strtok会破坏原来的字符串;strcpy不要用在“源”和“目的”重叠的地方(你例子中str和s2就重叠了);后面的strcpy(v1,S5),应该注意检测s5是否为NULL,否则容易出问题;同理strcpy(v2, s6)亦然。

C语言字符串处理函数strtok

#include string.h char *strtok( char *str1, const char *str2 ); 功能:函数返回字符串str1中紧接“标记”的部分的指针, 字符串str2是作为标记的分隔符。如果分隔标记没有找到,函数返回NULL。为了将字符串转换成标记,第一次调用str1 指向作为标记的分隔符。之后所以的调用str1 都应为NULL。

例如:

char str[] = "now # is the time for all # good men to come to the # aid of their country"; char delims[] = "#"; char *result = NULL; result = strtok( str, delims ); while( result != NULL ) { printf( "result is \"%s\"\n", result ); result = strtok( NULL, delims ); } 以上代码的运行结果是:

result is "now " result is " is the time for all " result is " good men to come to the " result is " aid of their country" 相关主题:

C语言中strtok用法

一般来说,条件关键词(if

else

else

if

for

while)只能作用于

紧随其后的

第一句

代码。

{

}的作用,你可以这么理解:是把‘被

括起来

的所有代码’

当成

‘一句代码’

送给关键词来处理。

注意:被括起来的可以是多句,当然也可以是一句哦。

if(a

==

b)

printf(

"a

==

b");

printf(

"a

!

a

!b

");

这个时候

第二个

printf

if

来说不是紧随的第一句所以不受if

限制。一定会输出。

if(a

==

b)

{

printf(

"a

==

b");

printf(

"a

!

a

!b

");

}

这个时候,整个大括号里的(两句

printf)就是

紧随

if

的第一句代码了。


文章标题:C语言之strtok函数,c语言strtol函数用法
网页链接:http://scyanting.com/article/phpccc.html