[C] - 将字符串拆分为2个字符串

时间:2015-12-07 12:34:15

标签: c string split strtok

我是C初学者,现在正在制作一个程序。 这只是其中的一小部分。

我想,每当我输入“A组”时,程序输出“Hallo 1”和“Hallo 2”,每当我只输入“set”时,程序只应输出“Hallo 1”。 我的问题是,当我只输入“set”时,它会崩溃......我不知道为什么

N

2 个答案:

答案 0 :(得分:0)

这是因为在下面的调用中token2为NULL:

 token2 = strtok(NULL, search); // NULL when input is "set"

所以

 if (strcmp(token2, "A") == 0) // Segmentation fault

会引导您出现细分错误

你可以试试这个:

if (token2 && strcmp(token2, "A") == 0)

答案 1 :(得分:0)

你可以{NULL} strcmp使用空字符串,如果你第二次只用" strtok"再次拨打set,就会得到这个字符串。作为输入,因为这将给你你在那里的分段错误。

您可以先检查token2是否不是NULL,如下所示:

if (token2)
如果token2不是NULL,则

将为true。