編寫一個程序,將連個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。例如,"A"和“C”相比,由於"A" < "C",應輸出負數,同時由於‘A’與‘C’的ASCII碼差值為2,因此應輸出"-2"


編寫一個程序,將連個字符串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;
}

【結果截屏】
編寫一個程序,將連個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。例如,"A"和“C”相比,由於"A" < "C",應輸出負數,同時由於‘A’與‘C’的ASCII碼差值為2,因此應輸出"-2"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM