|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
写一个程序模仿 strncmp 函数的实现比较两个字符串 s1 和 s2,需要满足以下要求。8yv64-wQ
BUq}Q o5_KFIE>Ym+uCf&i8["<Jj
要求 A:如果 s1 > s2,输出一个正数,值是两个不同字符的差;r^g5eX
要求 B:如果 s1 = s2,输出 0;A!gzLGit
要求 C:如果 s1 < s2,输出一个负数,值是两个不同字符的差。
#include <stdio.h>
#include <windows.h>
#define MAX 1024
int main()
{
unsigned int n;
int i = 0;
char str1[MAX];
char str2[MAX];
printf("Çëêäèëμúò»¸ö×Ö·û′®£o");
while(str1[i] = getchar() != '\n')
{
i++;
}
i = 0;
printf("Çëêäèëμú¶t¸ö×Ö·û′®£o");
while(str2[i] = getchar() != '\n')
{
i++;
}
printf("Çëêäèë±è½ÏμÄ×Ö·ûêy£o");
scanf("%u", &n);
for(i = 0; i < n; i++)
{
if(str1[i] - str2[i])
{
break;
}
}
printf("μú%d¸ö×Ö·ûÏà2î:%d\n", i + 1, str1[i] - str2[i]);
system("pause");
return 0;
}
上面是自己写的,为啥显示的结果总是0呢?
可以试试看: - #include <stdio.h>
- int compare(const char *A, const char *B){
- int i;
- for(i = 0; A[i] || B[i]; i++) if(A[i] != B[i]) break;
- return A[i] - B[i];
- }
- int main()
- {
- char A[20] = "Hello";
- char B[20] = "Hello";
- char C[20] = "World";
-
- printf("compare A and B = %d\n", compare(A, B));
- printf("compare B and C = %d\n", compare(B, C));
- return 0;
- }
复制代码- compare A and B = 0
- compare B and C = -15
复制代码
|
|