gpt4 book ai didi

c - strcmp() 不比较

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:10 25 4
gpt4 key购买 nike

大家好,我是新手,我正在编写一个代码,主要目的是在两个字符串相等时打印一个数字。第一个字符串是从文件中获取的,第二个是要比较的字符串。

代码:

int main()
{
char *string[2];
FILE *stream;
stream = fopen("REL","r");
if( (stream = fopen("REL","r")) == NULL)
{
printf("Can't open %s\n","REL");
exit(1);
}
for(int i=0;i<92;i++)
{
fscanf(stream,"%s",&string);
if( strcmp("20", *string) == 0 )
{
printf("%d",20);
}
}
fclose(stream);
}

并且...当我在 shell 上测试时,它提示我:

~/CM$ ./file2 
Segmentation fault (core dumped)

我可能犯了一个愚蠢的错误。但是,作为新手,我无法弄清楚脚本出了什么问题。

最佳答案

string 是 2 个 char* 的单元化数组。 fscanf 正在尝试写入不应该写入的内存。将 string 声明为 char 数组:

char string[256];

和:

fscanf(stream, "%255s", string); /* Limit number of
chars read to prevent buffer overrun. */

关于c - strcmp() 不比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745641/

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