• 写一个函数,实现两个字符串的比较。即实现strcmp函数,s1=s2时返回0,s1!=s2时返回二者第一个不同字符的ASCII值。


     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 int main(){
     5     setvbuf(stdout,NULL,_IONBF,0);
     6     char s1[255],s2[255];
     7     int strcmp(char *,char *);
     8     int result;
     9 
    10     printf("1st string:");
    11     gets(s1);
    12     printf("2nd string:");
    13     gets(s2);
    14     result=strcmp(s1,s2);
    15     printf("The comparing result is %d.",result);
    16 
    17     return EXIT_SUCCESS;
    18 }
    19 
    20 int strcmp(char *p1,char *p2){
    21     int i;
    22     int result;
    23 
    24     result=0;                        //先假设两个字符串相等,比较结果为0
    25     for(i=0;*(p1+i)&&*(p2+i);i++)    //比较两个字符串中的对应字符都不为的情况
    26     {
    27         if(*(p1+i)!=*(p2+i))
    28         {
    29             result=*(p1+i)-*(p2+i);
    30             break;
    31         }
    32     }
    33     
    34     //若两个字符串的长度不相等,但有字符的部分是完全相同的,退出上述循环后,result还是0
    35     if(result==0)                    
    36         result=*(p1+i)-*(p2+i);
    37     return result;
    38 }

    下面是谭浩强的答案,比较简单。我还是不能灵活运用while语句

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 int main(){
     5     setvbuf(stdout,NULL,_IONBF,0);
     6     char s1[255],s2[255];
     7     int strcmp(char *,char *);
     8     int result;
     9 
    10     printf("1st string:");
    11     gets(s1);
    12     printf("2nd string:");
    13     gets(s2);
    14     result=strcmp(s1,s2);
    15     printf("The comparing result is %d.",result);
    16 
    17     return EXIT_SUCCESS;
    18 }
    19 
    20 int strcmp(char *p1,char *p2){
    21     int i=0;
    22     int result;
    23 
    24     while(*(p1+i)==*(p2+i))
    25         if(*(p1+i++)=='')
    26             result=0;
    27     result=*(p1+i)-*(p2+i);
    28     
    29     return result;
    30 }
  • 相关阅读:
    常用命令之mongodb
    常用之juc
    常用命令
    WSL2错误Error 0x1bc解决
    sudo:Unable to stat '/etc/sudoers': Permission Denied 解决办法
    CPIO写入ROOTFS到磁盘分区
    getElementsByClassName
    PetaLinux通过fw_printenv访问u-boot中的环境变量
    1. 两数之和
    find xargs grep查找文件及文件内容
  • 原文地址:https://www.cnblogs.com/Camilo/p/3371783.html
Copyright © 2020-2023  润新知