gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:43 28 4
gpt4 key购买 nike

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

我想,无论何时我输入“set A”,程序都会输出“Hallo 1”和“Hallo 2”,而每当我只输入“set”时,程序应该只输出“Hallo 1”。我的问题是,当我只输入“set”时,它崩溃了……我不知道为什么

#include <stdio.h>
#include <string.h>
int main()
{
char command[128];
printf("ep> ");
scanf(" %[^\n]%*c", command);

char *token;
char *token2;
char *search = " ";

token = strtok(command, search);

token2 = strtok(NULL, search);


if (strcmp(token, "set") == 0)
{
printf("Hallo1\n");
if (strcmp(token2, "A") == 0)
{
printf("Hallo2\n");
return;
}
return;
}

return 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)

关于c - [C]-将字符串拆分为 2 个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34133681/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com