标签: strcmp

C:比较2个字符串

我必须比较2个字符串,一个来自文件,一个来自用户输入,这里是文件:

Password 
abcdefg 
Star_wars 
jedi
Weapon 
Planet 
long 
nail 
car 
fast 
cover 
machine 
My_little
Alone
Love
Ghast
Run Code Online (Sandbox Code Playgroud)

从行中获取字符串的代码很好但是用于比较2个字符串的代码没有给出正确的输出

int main(void){
  int loop, line;
  char str[512];
  char string[512];
  FILE *fd = fopen("Student Passwords.txt", "r");
  if (fd == NULL) {
    printf("Failed to open file\n");
    return -1;
  }
  printf("Enter the string: ");
  scanf("%s",string);
  printf("Enter the line number to read : ");
  scanf("%d", &line);

  for(loop = 0;loop<line;++loop){
    fgets(str, sizeof(str), fd);
  }
  printf("\nLine %d: %s\n", line, str);

  if(strcmp(string,str) == 0 ){
    printf("Match"); …
Run Code Online (Sandbox Code Playgroud)

c structure strcmp

-2
推荐指数
1
解决办法
139
查看次数

与不相等的字符串进行比较时,strcmp()返回0

在C中,如果两个字符串相等,strcmp()函数返回0.当我给出这样的代码时,

char str[10] = "hello";
if(strcmp(str,strrev(str))==0)
{
printf("1");
}
else
printf("0");
Run Code Online (Sandbox Code Playgroud)

如果它是一个回文字符串,则应打印1,如果不是回文,则应打印0.但即使给定字符串"hello"不是回文,它也会打印1.哪里出错了?

c string palindrome strcmp

-2
推荐指数
1
解决办法
584
查看次数

c中的分段错误strcmp

我正在尝试在 c 中运行一个程序,该程序接收用户的文本文件和字符串,然后在文件中搜索该字符串。它不断出现分段错误,gdb 将我指向这个函数,但我不确定问题是什么。我很确定这与电话有关,strcmp但我不确定。任何有关此问题的帮助将不胜感激。

int inTable( const char *s )
{
    int i;

    for( i=0; i<numLines; ++i )
    {
        if( strcmp( st[i], s ) == 0 )
                return 1;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c debugging gdb segmentation-fault strcmp

-2
推荐指数
1
解决办法
1610
查看次数

对于2个确切的文件,strcmp不会返回0

我用c编写了一个代码,它从2个文件中读取,而不是将2个缓冲区与strcmp进行比较.对于某些字符串,即使我从完全相同的文件中读取,strcmp也会返回!= 0

有谁知道为什么?

这是代码的相关部分:

read_max[0]= read(fdin[0],read_buf,read_offset) ;
read_max[1]=read(fdin[1],read_buf2,read_offset);

    if(strcmp(read_buf,read_buf2)){
        same=1;
    }
Run Code Online (Sandbox Code Playgroud)

我试图在这个论坛和其他论坛上检查答案,但我发现的唯一答案是添加了'\n'的情况.正如我在标题中写的那样,问题是它不会进入if,但它确实存在(因为它不会返回0)!事实并非如此.写字符串的方式是一样的.在版本中,有时strcmp正常工作.

例如,如果文件以空格或\n开头,则会出错.谢谢!

c strcmp

-3
推荐指数
1
解决办法
142
查看次数

C编程语言:strcmp的行为(str1,str2)

在C中,我有一个字符数组:

d[20] 
Run Code Online (Sandbox Code Playgroud)

使用空终止字符为"if"赋值:

d[0]='i'
d[1]='f'
d[2]='\0'
Run Code Online (Sandbox Code Playgroud)

该值应strcmp(d,"if")为0吗?为什么?

我希望strcmp返回值0.当我运行它时,我得到值-1

c strcmp

-4
推荐指数
1
解决办法
381
查看次数

c语言中使用strcmp()比较两个二进制文件

首先抱歉我的英语不好。

我有两个二进制文件。

我将二进制文件分别存储到缓冲区中。

然后我使用 strcmp() 比较了两个缓冲区。

strcmp() 的结果为零。

所以我认为两个二进制是相同的。

打开两个二进制文件,然后检查是否有差异。

但我发现差别不大。

问题是什么?

strcmp() 函数不是将二进制与二进制进行比较的正确方法?

c binary file strcmp

-4
推荐指数
1
解决办法
224
查看次数

如何检查`strcmp`是否失败?

那么这个问题就是关于C和C++的问题strcmp.

我遇到了这个链接:C库函数 - strcmp().

在这里,它解释了返回值strcmp.我知道每个功能,无论多么安全,都会失败.因此,我知道甚至strcmp可能在某个时候失败.

此外,我遇到了这个问题,也解释了返回值strcmp.经过大量搜索,我找不到一个解释如何检查是否strcmp会失败的网站.

我首先想到它会返回-1,但事实证明,如果第一个字符串较小,它会返回数字<0.那么有人可以告诉我如何检查是否strcmp失败.

编辑:好吧,我不明白strcmp没有失败的意义.函数失败的方法有很多种.例如,在一条评论中,写道如果堆栈没有扩展,可能会导致堆栈过低.没有任何语言的程序是绝对安全的!

c c++ strcmp

-21
推荐指数
2
解决办法
488
查看次数

标签 统计

c ×7

strcmp ×7

binary ×1

c++ ×1

debugging ×1

file ×1

gdb ×1

palindrome ×1

segmentation-fault ×1

string ×1

structure ×1