雨如洁 发表于 2021-4-12 19:14:21

模仿strncmp

#include<stdio.h>

int main()
{
      char a;
      char b;
      int n,i=0,c;
      printf("请输入要比较的字符串a;");
      scanf("%s",&a);

      printf("请输入要比较的字符串b;");
      scanf("%s",&b);

      printf("请输入要比较的字符个数;");
      scanf("%d",n);
      
      while(i<n)
      {
                if(a-b<0)
                {
                        printf("比较的结果是%d",-32);
                        c=0;
                        break;
                }
                if(a-b==0)
                {
                        c=1;
                }
                if(a>b)
                {
                        printf("比较的结果是%d",32);
                        c=0;
                        break;
                }
                i++;
         }
         
         if(c)
         {
               printf("比较的结果是%d",0);
         }
      return 0;
}不知道为什么无法运行成功,希望大哥们可以告诉我原因

wp231957 发表于 2021-4-12 19:20:24

第15行咋没有取址符

肖-肖 发表于 2021-4-12 19:48:03

本帖最后由 肖-肖 于 2021-4-12 19:51 编辑

我帮你修改了下:出现的问题都在-->注释里面了!
自己看就行了,应该能看明白!
#include<stdio.h>

int main()
{
      char a;
      char b;
      int n,i=0,c;
      printf("请输入要比较的字符串a: ");
      //scanf("%s",&a); //首先用scanf接收字符串的话只能是一串连续的字符串所以我这里用gets
      gets(a);

      printf("请输入要比较的字符串b: ");
      //scanf("%s",&b);//同理
      gets(b);

      printf("请输入要比较的字符个数: ");
      scanf("%d",&n);//这里应该是:&n 因为是取变量的地址嘛

      while(i<n)
      {
                if(a-b<0)
                {
                        //printf("比较的结果是%d",-32);//不用输出的
                        c=0;
                        break;
                }
                if(a-b==0)
                {
                        c=1;
                }
                if(a>b)
                {
                        //printf("比较的结果是%d",32);
                        c=0;
                        break;
                }
                i++;
         }

         if(c)
         {
            printf("这两个字符串的前%d个字符比较的结果是相等的!",n);
         }else{
            printf("这两个字符串的前%d个字符比较的结果是不相等的!",n);
         }
      return 0;
}



运行结果如下:


对了在补充一句:strncmp() 用来比较两个字符串的前n个字符,区分大小写
OK 希望有用吧

雨如洁 发表于 2021-4-12 22:25:59

肖-肖 发表于 2021-4-12 19:48
我帮你修改了下:出现的问题都在-->注释里面了!
自己看就行了,应该能看明白!



谢谢大哥
页: [1]
查看完整版本: 模仿strncmp