0
点赞
收藏
分享

微信扫一扫

切割字符串的函数strtok的使用

郝春妮 2022-03-23 阅读 101
c语言

strtok的定义是char * strtok ( char * str , const char * sep );

参数:str是要切割字符串,sep是切割字符的集合。返回类型是char*.

工作原理: strtok 函数找到 str 中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。

例如:"abcd 1234@qq.com"

分割符集合有空格,@,和点号.

调用strtok函数时传递字符串的首地址过去,strtok找到空格  ,并把这个位置置换为\0,记录这个位置的标记。此时打印出abcd,要想继续打印就要再调用strtok,因为前面已经把这个位置置换为0所以传递NULL,根据以前记录的标记,继续查找到下一个标记。如此反复下去,直到字符串中不存在,返回NULL。所以要想全部打印出来要用for循环。

#include<stdio.h>
#include<string.h>
int main()
{
	char ch1[] = "abcd 1234@qq.com";
	char* p = " @.";
	char ch2[30] = { 0 };
	strcpy(ch2, ch1);
	char* str = NULL;
	for (str = strtok(ch2, p); str != NULL; str = strtok(NULL, p))
	{
		printf("%s\n", str);
	}
}

注意:strtok 函数会改变被操作的字符串,所以在使用 strtok 函数切分的字符串一般都是临时拷贝的内容 并且可修改。所以用strcpy(ch2,ch1).

 

举报

相关推荐

0 条评论