c语言用空格拆分字符串ab cd 不用strtok
时间: 2024-10-26 12:16:09 浏览: 32
在C语言中,如果你想要不用`strtok`函数来拆分一个字符串(如"ab cd"),你可以手动遍历字符串并逐个字符判断是否为空格,然后将非空格部分添加到结果数组或链表中。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void split_string(char *str, char *result[], int *size) {
int i = 0, j = 0;
for (j = 0; str[j] != '\0'; j++) {
if (str[j] != ' ') {
result[i++] = &str[j];
}
}
// 将最后一个元素的'\0'也添加进去
result[i] = &str[j];
*size = i;
}
int main() {
char input[] = "ab cd";
char *results[10]; // 预计最多有两部分
int size;
split_string(input, results, &size);
for (int k = 0; k <= size; k++) {
printf("%s", results[k]);
if (k != size) {
printf(" "); // 如果不是最后一个部分,加空格分隔
}
}
return 0;
}
```
在这个例子中,`split_string`函数会返回处理后的字符串数组`results`的数量,并用它填充了原始字符串中的非空格字符。
阅读全文