文章目录
字符串分割函数strtok
在C语言中,可以使用strtok()
函数来按照空格将接收到的字符串分割成子字符串。下面是一个简单的示例,展示了如何将一个字符串按空格分割成3个子字符串。
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[100] = "I love you"; // 示例字符串
char *token; // 用于保存每次调用strtok()返回的子字符串
int count = 0; // 计数器,用于确保最多分割成3个子字符串
// 使用strtok()分割字符串,第一次调用需要传入原始字符串
token = strtok(str, " ");
while(token != NULL && count < 3) { // 继续分割直到没有更多的子字符串,或者已经分割成3部分
printf("%s\n", token); // 打印子字符串
token = strtok(NULL, " "); // 继续调用strtok(),传入NULL表示继续分割上一次的字符串
count++; // 增加计数器
}
return 0;
}
代码测试
[08:16:42] (*^~^*) ~/zhugong/workbase/test$ gcc strtok.c -o strtok
[08:16:56] (*^~^*) ~/zhugong/workbase/test$ ./strtok
I
love
you
这个程序首先定义了一个示例字符串"This is a test"
,然后使用strtok()
函数按空格分割这个字符串。strtok()
函数的第一个参数在首次调用时是原始字符串,之后的调用应传入NULL
,以指示继续从上次停下的地方开始分割。第二个参数是一个包含分隔符的字符串,在这个例子中是一个空格字符" "
。
请注意,strtok()
函数在原始字符串上进行修改,将找到的分隔符替换为\0
字符(字符串结束符)。因此,如果你需要保留原始字符串,应该先对其进行复制。
这个程序将会按照空格分割字符串,最多分割成3个子字符串,并将它们打印到控制台。由于我们的示例字符串中有3个空格,按照这个逻辑,它会被完全分割成4个子字符串,但由于我们的循环限制了最多处理3次,所以只会处理前3个空格分割出的子字符串。