ERoslon青年 2022-04-25 19:29 采纳率: 100%
浏览 52
已结题

关于在vs上运行的出现的问题!(标签-ar|关键词-字符串)

 #include <stdio.h>
  #include <string.h>
  void  main()
  {
      char s1[100];
      char s2[100];
      int a;
      int strcmp(char* p1, char* p2);
      printf("输入字符串s1:");
      scanf_s("%s",s1);
      printf("输入字符串s1:");
      scanf_s("%s", s2);
      a=strcmp(s1,s2);
      printf("%d",a);
  }
  int  strcmp(char* p1, char* p2)
  {
      int i = 0;
      int c,l;
      //下面是找出两个字符串中较短的长度,避免出现字母与“/0“比较的情况
      l  = strlen(p1) >  strlen(p2) ?  strlen(p2) :  strlen(p1);
      while (*(p1 + i) == *(p2 +  i)&&i<l)
      {
           i++;
      }
      if (i < l - 1)
      {
           c  = *(p1 + i)  - *(p2 + i);
           return c;
      }
      else if (i = l - 1)
           return 0;
  }

一运行程序输入字符按下Enter键后就跳转这个页面报错,程序无法运行下去,但编译那边没有报错。

img

  • 写回答

3条回答 默认 最新

  • 不会长胖的斜杠 新星创作者: 后端开发技术领域 2022-04-25 19:44
    关注
    1. scanf_s 里面都少了取值符, &
    2. 不能这样给字符串赋值,可以直接gets(s1)

    img

    望采纳,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 已采纳回答 4月26日
  • 创建了问题 4月25日