11.13

发布时间 2023-12-17 17:17:39作者: 刘梦磊

2. 用一个函数实现两个字符串的比较,即自己写一个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由main函数输入,strcmp函数的返回值也由main函数输出。

程序代码:

#include <stdio.h>

 

int strcmp(char *p1, char *p2) {

    while (*p1 != '\0' && *p2 != '\0') {

        if (*p1 != *p2) {

            return *p1 - *p2;

        }

        p1++;

        p2++;

    }

    return *p1 - *p2;

}

 

int main() {

    char s1[100], s2[100];

    printf("输入第一个字符串: ");

    scanf("%s", s1);

    printf("输入第二个字符串: ");

    scanf("%s", s2);

 

    int result = strcmp(s1, s2);

 

    if (result == 0) {

        printf("两个字符串相等\n");

    } else {

        printf("两个字符串不相等,第一个不相同字符的ASCII码差值为 %d\n", result);

    }

 

    return 0;

}