sunnyrubik 发表于 2018-11-6 16:53:16

关于strncmp

大家号,为什么程序运行后没有结果呢?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 1024
int main()
{
        char str1;
        char str2;
        int n,m,i=0;
       
        printf("请输入第一个字符串:\n");
        while ((str1 = getchar()) != '\n');
       
        printf("请输入第二个字符串:\n");
        while ((str2 = getchar()) != '\n');
       
        printf("请输入要比较的位数:\n");
        scanf("%d",&n);
       
        if (!strncmp(str1, str2, n))
        {printf("两字符串前%d个字符相同",n);}
       
        system("pause");
        return 0;
        }


千公子 发表于 2018-11-6 16:53:17

不好意思,我看错了。你第二个输入i,没有归0;#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 1024
int main()
{
      char str1;
      char str2;
      int n,m,i=0;
      
      printf("请输入第一个字符串:\n");
      while ((str1 = getchar()) != '\n');
      
      i = 0;

      printf("请输入第二个字符串:\n");
      while ((str2 = getchar()) != '\n');
      
      printf("请输入要比较的位数:\n");
      scanf("%d",&n);
      
      if (!strncmp(str1, str2, n))
      {printf("两字符串前%d个字符相同",n);}
      
      system("pause");
      return 0;
      }

千公子 发表于 2018-11-7 18:02:35

由于缓存问题,str2存入了\n

千公子 发表于 2018-11-7 18:08:18

千公子 发表于 2018-11-7 18:07
不好意思,我看错了。你第二个输入i,没有归0;

希望采纳,第一次回答问题!

sunnyrubik 发表于 2018-11-7 22:50:44

千公子 发表于 2018-11-6 16:53
不好意思,我看错了。你第二个输入i,没有归0;

谢谢啊{:10_275:}
页: [1]
查看完整版本: 关于strncmp