编写一个C程序,实现以下功能: 用一个函数实现两个字符串的比较,即自己写一个strcmp函数

题目如下:

编写一个C程序,实现以下功能:
用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为: int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1≠s2,返回它们二者第一个不相同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不相同,“O”与“A”之差为79-65=14);如果s1>S2,则输出正值;如s1

代码如下:

  #include 
  #include 
  void  main()
  {
      char s1[100];
      char s2[100];
      int a;
      int strcmp(char* p1, char* p2);
      printf("输入字符串s1:");
      scanf("%s",s1);
      printf("输入字符串s1:");
      scanf("%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;
  }
  

总结

1.用一维数组将两个字符串进行储存
2.使用while循环进行比较,若出现不同返回差值,否则返回0

你可能感兴趣的:(c语言练习题,c语言)