c语言用空格拆分字符串adb ac,将其赋值给数组,不用strtok
时间: 2024-10-26 07:16:39 浏览: 20
在C语言中,如果你想要使用空格拆分字符串而不使用`strtok`函数,可以手动遍历字符串并逐个添加到数组中。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_TOKENS 5 // 设置最大数组元素数
int main() {
char str[] = "adb ac";
char tokens[MAX_TOKENS][MAX_TOKENS * 4]; // 分配足够空间存储可能的最大单词
int token_count = 0;
// 指针初始化
char* ptr = strtok(str, " "); // 使用空格作为分隔符
while (ptr != NULL) { // 只要找到新的单词
if (token_count < MAX_TOKENS - 1) { // 防止溢出
strcpy(tokens[token_count], ptr); // 复制单词到数组
token_count++;
} else {
printf("Too many tokens, not adding the last one.\n");
break;
}
ptr = strtok(NULL, " "); // 继续查找下一个单词,直到无更多
}
// 输出结果
for (int i = 0; i < token_count; i++) {
printf("%s\n", tokens[i]);
}
return 0;
}
```
这个程序会将输入字符串"adb ac"分割成两个单词,并存储到数组tokens中。注意,这里我们假设输入字符串不会包含超过`MAX_TOKENS`个的单词。
阅读全文