程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-C++小白來提問關於strcmp的問題

c++-C++小白來提問關於strcmp的問題

編輯:編程綜合問答
C++小白來提問關於strcmp的問題

我用strcmp()來比較兩個字符串A和B
A="HelloWorld"
B="Hello World"
結果是B比A小
不明白啊,不是空格算1字符麼,怎麼B還比A小呢?

最佳回答:


strcmp(A,B);
相當於:
strcmp("HelloWorld" , "Hello World");
這個比較函數的功能是把上面這兩個字符串中的每一個字符的ASC碼值進行比較,遇到'\0'或者不相同的則停止,並返回比較值。
第一步:比較H 和 H 這個字母的ASC值相同,且不為'\0',繼續比較下一位
e...原理同上
l...原理同上
l...原理同上
o..原理同上
這一步:該比較 W 和 ' '(空格)了,W的ASC碼值 > ' '(空格)的ASC碼值。此時雖然沒有遇到'\0', 但是所比較的兩個字符不同,於是比較結束,返回:A>B.
事實上返回的應該是一個枚舉值:1.
例:
strcmp(str1 , str2);
若str1>str2 返回1,
若str1==str2 返回0,
若str1<str2 返回-1,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved