【发布时间】:2014-12-20 11:51:58
【问题描述】:
我想编写一个函数,将用户在命令行中给出的字符串与第一次出现的逗号分开并放入一个数组中。
这是我尝试过的:
char**split_comma(const str *s) {
char *s_copy = s;
char *comma = strchr(s_copy, ",");
char **array[2];
*(array[0]) = strtok(s_copy, comma);
*(array[1]) = strtok(NULL,comma);
return array;
}
这是主要功能:
int main(int argc, char **argv) {
char **r = split_comma(argv[1]);
printf("substring 1: %s, substring 2: %s\n", r[0],r[1]);
return 0;
}
有人可以告诉我为什么这不起作用吗?
【问题讨论】:
-
一个大问题是你的
split_comma函数没有返回任何东西 -
+ 没有人为字符串指针数组和子字符串分配空间
-
+ 此代码根本无法编译。
-
我建议你启用警告然后修复它们。例如,对 gcc / clang 使用
-Wall -Wextra。 -
我需要为子字符串和数组分配空间吗?