写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s2.要求当s1=s2时返回值为0;若s1!=s2,返回它们二者第一个不同字符的ASCII码差值
#include<stdio.h>
#include<stdlib.h>
#define N 10
int Strcmp(const char* p1, const char* p2) {
for (int i = 0; i < N; ++i) {
if (p1[i] != p2[i]) {
return p1[i] - p2[i];
}
else if (p1[i] == '\0' && p2[i] == '\0') {
return 0;
}
}
return 0;
}
void main() {
char s1[N];
char s2[N];
printf("请输入s1\n");
for (int i = 0, ch = '\0'; ch != '\n'; ++i) {
ch = getchar();
if (i >= N) {
continue;
}
if (ch == '\n' || i == N - 1) {
s1[i] = '\0';
continue;
}
s1[i] = ch;
}
printf("请输入s2\n");
for (int i = 0, ch = '\0'; ch != '\n'; ++i) {
ch = getchar();
if (i >= N) {
continue;
}
if (ch == '\n' || i == N - 1) {
s2[i] = '\0';
continue;
}
s2[i] = ch;
}
printf("s1为%s\ns2为%s\n", s1, s2);
printf("%d\n", Strcmp(s1, s2));
system("pause");
}
