c语言将多个单词从字符串中提取出来并保存不用strtok
时间: 2024-05-16 17:12:41 浏览: 81
可以使用循环和指针的方法来实现:
```c
#include <stdio.h>
void extract_words(const char* str) {
const char* start = str; // 指向当前单词的开头
const char* end; // 指向当前单词的结尾
while (*start != '\0') { // 循环直到字符串结尾
while (*start == ' ') {
start++; // 跳过空格
}
end = start;
while (*end != ' ' && *end != '\0') {
end++; // 找到单词结尾
}
if (start != end) { // 如果单词不为空
char word[end - start + 1]; // 保存单词的数组
for (int i = 0; i < end - start; i++) {
word[i] = *(start + i); // 拷贝单词到数组中
}
word[end - start] = '\0'; // 末尾添加字符串结束符
printf("%s\n", word); // 输出单词
}
start = end; // 指向下一个单词的开头
}
}
int main() {
char str[] = "C语言 是 一种 通用 的 高级 语言";
extract_words(str);
return 0;
}
```
输出结果:
```
C语言
是
一种
通用
的
高级
语言
```
阅读全文