写一个strtok的范例
时间: 2023-11-17 13:57:29 浏览: 32
strtok函数可以将一个字符串按照指定的分隔符进行分割,下面是一个strtok的范例:
```
#include <stdio.h>
#include <string.h>
int main () {
char str[80] = "This is a sample string";
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 sample string"按照空格进行分割,并输出每个子字符串。在第一次调用strtok时,需要传入要分割的字符串和分隔符,之后每次调用strtok时,只需要传入NULL和分隔符即可继续分割。需要注意的是,strtok会修改原始字符串,因此如果需要保留原始字符串,需要先将其复制一份。
相关问题
使用strtok 举个例子吧
当使用 `strtok` 函数时,需要将一个字符串分割成多个标记(tokens)。下面是一个简单的示例,展示了如何使用 `strtok` 函数来分割一个句子成为单词:
```c
#include <stdio.h>
#include <string.h>
int main() {
char sentence[] = "Hello, World! This is an example sentence.";
char delimiters[] = " ,.!"; // 分隔符包括空格、逗号和句号
char* token;
token = strtok(sentence, delimiters); // 获取第一个标记
while (token != NULL) {
printf("%s\n", token); // 打印当前标记
token = strtok(NULL, delimiters); // 获取下一个标记
}
return 0;
}
```
在上述示例中,我们有一个句子字符串 `sentence`,包含了一个简单的句子:"Hello, World! This is an example sentence."。我们使用 `strtok` 函数将这个句子分割成单词,并打印出每个单词。
我们定义了一个 `delimiters` 字符串,其中包含了分隔符,包括空格、逗号和句号。然后,我们调用 `strtok` 函数来获取第一个标记,传递给它句子字符串和分隔符字符串。`strtok` 函数返回第一个标记,并用空字符替换分隔符。
接下来,我们使用一个循环来处理每个标记。在循环中,我们首先打印当前标记,然后使用 `strtok` 函数以 `NULL` 作为第一个参数来获取下一个标记。每次调用 `strtok` 函数时,我们将 `NULL` 作为第一个参数,以便它继续在同一个字符串上继续分割。当没有更多标记时,`strtok` 函数返回 `NULL`,循环终止。
运行上述示例代码,你将看到以下输出:
```
Hello
World
This
is
an
example
sentence
```
这个示例展示了如何使用 `strtok` 函数将一个句子分割成多个单词。你可以根据自己的需求修改分隔符字符串和要分割的句子字符串。希望这个例子对你有帮助!如果有任何问题,请随时提问。
不用strtok如何写
可以使用字符串操作函数中的strstr和strchr函数来代替strtok函数。strstr函数可以在一个字符串中查找另一个子串,并返回第一个匹配的子串的地址;而strchr函数可以在一个字符串中查找指定字符,并返回该字符首次出现的地址。
下面是一个例子,演示如何使用strstr和strchr函数来代替strtok函数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello,World,How,Are,You";
char *p = str;
char *q;
while ((q = strchr(p, ',')) != NULL) {
*q = '\0';
printf("%s\n", p);
p = q + 1;
}
printf("%s\n", p);
return 0;
}
```
这个例子中,我们首先定义了一个字符串str,然后使用strchr函数找到每个逗号,并将其替换为字符串结束符\0。接着,我们使用p指针遍历整个字符串,每次找到一个逗号就将其替换为字符串结束符,并输出从p到q-1的子串。最后,我们输出剩下的字符串。