c语言字符串拆分数组
时间: 2024-12-25 07:06:11 浏览: 0
在C语言中,我们可以使用`strtok()`函数将字符串按照指定的分隔符拆分成数组。`strtok()`函数会返回每个单词的首字符指针,而我们需要手动处理剩余部分并复制到数组中。这是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 10 // 设置最大单词数
void split_string(char *str, char delimiter, char words[MAX_WORDS][50], int *word_count) {
char *token = strtok(str, delimiter);
int i = 0;
while (token != NULL && i < MAX_WORDS - 1) { // 防止超过数组大小
strcpy(words[i], token); // 复制单词到数组
token = strtok(NULL, delimiter); // 继续查找下一个单词
i++;
}
if (i == MAX_WORDS - 1) {
printf("Warning: Too many words in the string.\n");
}
*word_count = i; // 更新单词计数器
}
int main() {
char str[] = "Hello,World! This is a test.";
char delimiter[] = " ";
char words[MAX_WORDS][50];
int word_count;
split_string(str, delimiter, words, &word_count);
for (int i = 0; i < word_count; i++) {
printf("%s\n", words[i]);
}
return 0;
}
```
在这个例子中,我们首先定义了一个字符串`str`和一个分隔符`delimiter`,然后创建一个足够大的数组`words`来存储拆分后的单词。`split_string`函数会遍历字符串,并使用`strtok()`在每次迭代中获取一个新单词,直到所有单词都处理完毕。
阅读全文