strtok使用例子
时间: 2023-11-15 16:57:46 浏览: 32
strtok函数通常用于分割以及重组被特殊字符间隔的字符串。下面是一个strtok的使用例子:
```
#include <stdio.h>
#include <string.h>
int main () {
char str[80] = "This is a string, with commas.";
const char s[2] = ",";
char *token;
// 获取第一个子字符串
token = strtok(str, s);
// 继续获取其他的子字符串
while( token != NULL ) {
printf( "%s\n", token );
token = strtok(NULL, s);
}
return 0;
}
```
上述代码将字符串"This is a string, with commas."按照逗号进行分割,并输出每个子字符串。
相关问题
strtok函数使用示例
strtok函数是C语言中的字符串处理函数,用于将字符串分割成多个子字符串。它的使用示例如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello,World,CSDN";
char *token;
// 使用strtok函数分割字符串
token = strtok(str, ",");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, ",");
}
return 0;
}
```
上述示例中,我们首先定义了一个字符串`str`,其中包含了多个子字符串,每个子字符串之间使用逗号进行分隔。然后,我们使用`strtok`函数对字符串进行分割。
在第一次调用`strtok`时,我们将待分割的字符串`str`作为第一个参数传入,并指定分隔符为逗号。`strtok`函数会返回第一个子字符串的指针,并将原字符串中的逗号替换为`\0`,以便后续的分割。
接着,我们使用一个循环来遍历所有的子字符串。在循环中,我们首先打印当前子字符串,然后再次调用`strtok`函数,传入`NULL`作为第一个参数。这样,`strtok`函数会继续从上一次分割的位置开始,找到下一个子字符串,并返回其指针。
当所有的子字符串都被遍历完毕后,`strtok`函数会返回`NULL`,循环结束。
注意:在使用`strtok`函数时,需要注意以下几点:
1. `strtok`函数会修改原字符串,将分隔符替换为`\0`,因此在使用原字符串之前,需要先将其备份。
2. 在第一次调用`strtok`函数时,需要传入待分割的字符串作为第一个参数;在后续的调用中,需要传入`NULL`作为第一个参数。
3. `strtok`函数返回的指针指向的是原字符串中的子字符串,因此不要尝试修改或释放这些指针。
strtok函数示例
以下是一个使用strtok函数的示例,它将一个字符串按照空格分隔,并逐个输出分隔后的子字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "A B C D E F G";
char seps[] = " ";
char *token;
token = strtok(str, seps);
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, seps);
}
return 0;
}
```
输出结果为:
```
A
B
C
D
E
F
G
```
在这个示例中,我们首先定义了一个字符串`str`和一个分隔符`seps`,然后使用`strtok`函数将`str`按照`seps`进行分隔。在第一次调用`strtok`时,第一个参数为`str`,表示要对`str`进行分隔;第二个参数为`seps`,表示使用空格作为分隔符。`strtok`函数返回分隔后的第一个子字符串,并将原字符串中的分隔符替换为ASCII码为0的空值。在之后的每一次调用中,第一个参数都应该为NULL,表示继续对原字符串进行分隔。如果分隔完成,`strtok`函数将返回NULL。