c语言字符串数组adb acd用空格分割字符串不用strtok
时间: 2024-10-26 15:16:15 浏览: 26
在C语言中,如果你想将字符串数组`"adb acd"`按照空格分割,但不使用标准库函数`strtok()`,你可以选择手动遍历数组,并在遇到空格时存储新的单词到另一个数组。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void split_string(char* str_array[], char* input, char delimiter) {
int word_count = 0;
char* current_word = malloc(strlen(input) + 1); // 为新单词分配内存
char* temp = strtok(input, &delimiter); // 遍历输入字符串
while (temp != NULL) {
str_array[word_count] = current_word; // 将单词存入数组
strcpy(current_word, temp); // 更新当前单词地址
word_count++; // 增加单词计数
temp = strtok(NULL, &delimiter); // 继续查找下一个单词,直到找到空指针
}
if (current_word[0] != '\0') { // 如果还有剩余的部分(最后一个词后无分隔符)
str_array[word_count] = current_word; // 添加最后的单词
}
free(current_word); // 释放用于临时存储单词的内存
}
int main() {
char input[] = "adb acd";
char* result[3]; // 声明一个可以存放3个单词的结果数组
split_string(result, input, ' ');
for (int i = 0; i < word_count; i++) {
printf("%s\n", result[i]); // 输出分割后的单词
}
阅读全文