找出字符串中单词个数不能用split函数 C语言
时间: 2024-10-22 13:29:50 浏览: 17
如何在c++中实现字符串分割函数split详解
5星 · 资源好评率100%
在C语言中,虽然标准库函数`strtok()`通常用于分割字符串成单词,但它并不直接提供返回单词个数的功能。如果你想找出字符串中单词的个数而不能直接使用`split`类似的功能,可以采用以下步骤:
1. 使用`strtok()`遍历字符串,它会用指定的分隔符(如空格、逗号等)将字符串划分为单词。每次调用`strtok()`都会返回下一个单词,直到遇到分隔符结束或者字符串结束。
2. 初始化两个变量:一个记录当前正在处理的单词指针(`token`),另一个计数器(`word_count`)初始化为0。
3. 在循环中,如果`strtok()`返回非NULL,则说明找到一个单词,并将`word_count`加一;然后移动到下一次查找的起始位置,通常是`*token++`。
4. 循环结束后,`word_count`即为字符串中的单词个数。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int count_words(char *str, const char *delimiter) {
char *token = strtok(str, delimiter);
int word_count = 0;
while (token != NULL) {
++word_count;
token = strtok(NULL, delimiter);
}
return word_count;
}
int main() {
char str[] = "这是一个测试字符串,包含几个单词";
char delimiter[] = " ";
int word_count = count_words(str, delimiter);
printf("字符串中有 %d 个单词。\n", word_count);
return 0;
}
```
阅读全文