c语言将一行字符串按空格分开
时间: 2024-10-16 12:02:34 浏览: 44
在C语言中,如果你想把一行字符串按照空格分开并存储到数组或其他数据结构中,你可以使用`strtok()`函数。这是一个标准库函数,它会分割字符串,并返回每个单词的首字符。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 10 // 最大单词数
char words[MAX_WORDS][50]; // 存储单词的二维数组
void split_string(char* str) {
char* token = strtok(str, " "); // 分割符为空格
int i = 0;
while (token != NULL && i < MAX_WORDS - 1) { // 避免超过最大数组长度
strcpy(words[i], token); // 将单词复制到数组
i++;
token = strtok(NULL, " "); // 继续查找下一个词
}
if (i == MAX_WORDS - 1) {
printf("警告:输入的字符串超过了最大单词数!\n");
}
}
int main() {
char input[] = "This is a sample string";
split_string(input);
for (int j = 0; j < i; j++) {
printf("%s\n", words[j]); // 打印处理后的单词
}
return 0;
}
```
在这个例子中,`split_string()` 函数接收一个字符串作为参数,然后使用`strtok()`遍历每个单词。注意,由于`strtok()`改变了原字符串,所以通常推荐在一个独立的缓冲区(如`input`)里操作。
阅读全文