用strtok_r写一个句子解析函数,分隔符为空格
时间: 2024-09-20 19:16:27 浏览: 40
C语言切割多层字符串(strtok_r strtok使用方法)
`strtok_r`是一个在C语言中用于分割字符串的函数,它是一个线程安全的版本,相比非线程安全的`strtok`更适用于需要在多线程环境中操作字符串的情况。如果你想要编写一个使用`strtok_r`的句子解析函数,其基本结构可能会像下面这样:
```c
#include <stdio.h>
#include <string.h>
// 定义一个全局字符指针和一个临时缓冲区
char* token = NULL;
size_t token_len;
void sentence_split(char* str) {
// 如果token未初始化或者已经结束,从原字符串开始分割
if (!token || !*token) {
token = strtok_r(str, " ", &token); // 分割符为空格
}
// 当有新的词时,处理并更新token
while (token != NULL) {
printf("Token: %s\n", token);
token = strtok_r(NULL, " ", &token); // 使用NULL表示继续分割直到结束
}
}
int main() {
char sentence[] = "这是一个包含空格的句子";
sentence_split(sentence);
return 0;
}
```
这个`sentence_split`函数会将输入的句子按空格拆分成单独的单词,并打印出来。
阅读全文