C语言怎么将strtok函数的返回值放到一个变量里
时间: 2024-09-27 20:09:27 浏览: 28
详解C语言sscanf()函数、vsscanf()函数、vscanf()函数
5星 · 资源好评率100%
在C语言中,`strtok()` 函数用于字符串分割,它通常不会直接将结果存储到一个变量里,而是返回每次调用后的当前分隔符的位置。如果你想把分割的结果存储起来,你需要配合使用一个指向字符数组的指针。
基本步骤如下:
1. 首先,声明一个字符指针,比如 `token`,用于存储分割后的子串。
2. 调用 `strtok(NULL, delimiter)` ,这里的 `NULL` 表示从头开始处理,`delimiter` 是你要使用的分隔符。这一步会设置 `token` 指向第一个找到的分隔符。
3. 然后,你可以检查 `token` 是否为 `NULL`,如果是,则表示已经分割完所有子串,可以结束循环。如果不是,说明找到了一个子串,你可以将其复制到另一个缓冲区,例如 `result[]`,或者做进一步的操作。
```c
char str[] = "Hello,World! This is a test.";
char token[50];
char* result;
while ((token = strtok(str, ",")) != NULL) {
result = token; // 或者直接赋值给一个已经分配好空间的变量
// 对 result 进行操作,如打印、存入结构体等
printf("%s\n", result);
}
// 注意:strtok 不会修改原始字符串,只会改变 token 指针
```
阅读全文