如何比較char **的第一個元素的第一個字母?簡單c問題:比較char數組的第一個字符
我曾嘗試:
int main()
{
char** command = NULL;
while (true)
{
fgets(line, MAX_COMMAND_LEN, stdin);
parse_command(line, command);
exec_command(command);
}
}
void parse_command(char* line, char** command)
{
int n_args = 0, i = 0;
while (line[i] != '\n')
{
if (isspace(line[i++]))
n_args++;
}
for (i = 0; i < n_args+1; i++)
command = (char**) malloc (n_args * sizeof(char*));
i = 0;
line = strtok(line," \n");
while (line != NULL)
{
command[i++] = (char *) malloc ((strlen(line)+1) * sizeof(char));
strcpy(command[i++], line);
line = strtok(NULL, " \n");
}
command[i] = NULL;
}
void exec_command(char** command)
{
if (command[0][0] == '/')
// other stuff
}
,但給人的分段錯誤。我究竟做錯了什麼?
謝謝。
您是否將foo創建爲字符串列表?或者就像一個單一的字符串? '* char []'不明智,你的意思是'char * foo []'?你能說明foo是如何聲明的嗎? – Schwern 2010-05-29 21:42:05
您正在尋找的實際類型是什麼?你的意思是一串字符串或什麼?沒有'* char []'這樣的類型。 – Chuck 2010-05-29 21:42:49
已更新的問題。 – nunos 2010-05-29 21:44:39