给定一个字符串“红、黄、蓝、绿”,我需要编写一个函数来创建一个以颜色为元素的数组。我无法找到有关此问题的信息,因为不允许我使用 strtok 或 string.h 中的任何字符串操作函数。有什么建议吗?
这是我的代码:
int findLength(char string[]){
int l =0;
for(l = 0; string[l]!='\0'; l++){
}
return l;
};
char *stringToArray(char string[]){
int i = 0;
int j = 0;
char c = ',';
int n = 0;
int l = findLength(string);
char *str = (char *)malloc(l * sizeof(char));
while(string[i] != '\0'){
if(string[i] == c){
for(n = j; n < i; n++){
str[j++] += string[n];
}
}
i++;
}
printf("%s\n", str);
str = '\0';
return str;
}
int main(int argc, const char * argv[]) {
char *string = "red, blue, green,";
char *str = stringToArray(string);
free(str);
return 0;
}
最佳答案
迭代字符串直到找到逗号。然后将从开始到该点的所有内容复制到数组中的单独字符串中。
继续迭代,直到找到另一个逗号,然后将所有内容从上次停下的位置复制到数组中的另一个字符串中。
重复此操作,直到到达字符串末尾。另外,请务必在找到每个逗号后跳过所有空格。
关于c - 函数从 C 中的字符串创建数组,无需 strtok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781044/