編寫一個程序,將連個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。例如,"A"和“C”相比,由於"A" < "C",應輸出負數,同時由於‘A’與‘C’的ASCII碼差值為2,因此應輸出"-2"。同理:“And”和"Aid"相比較,根據第2個字符比較結果,"n"比"i"大5,因此應輸出"5"。
【答案解析】
字符串比較規則:從前往后逐個字符進行比較,相等時繼續往后,不相等時返回該位置兩個字符差值。
【代碼實現】
#include <stdio.h>
int main()
{
int ret = 0;
int index = 0;
char s1[100] = { 0 };
char s2[100] = { 0 };
printf("請輸入s1:");
gets(s1);
printf("請輸入s2:");
gets(s2);
// 將s1和s2中的字符從前往后逐個進行比較,相等繼續往后,
// 不相等時ret中結果不為0,!ret則為0 循環結束
// 如果一個走到末尾,一個未走到末尾 ret也不為0, !ret為0,循環結束
// 如果兩個字符串相等,同時達到末尾,循環結束
while (!(ret = s1[index] - s2[index]) && '\0' != s1[index] && '\0' != s2[index])
{
++index;
}
printf("%d\n", ret);
return 0;
}
【結果截屏】