字符串大小寫轉換和字符串的比較

字符串大小寫相互轉換

【1】ASCll碼關係:’A’-‘Z’ 是65~90,’a’-‘z’是97-122,對應大小寫字母ASCll值相差32。在加個循環條件便可轉換。c++

單個字符 c :函數

大寫變小寫:c + 32 ;spa

小寫變大寫:c - 32 ;code

 char str[10] = "ABcd"
 // 所有轉爲小寫
 for(int i=0; i<str.size(); i++)
 {
     if(str[i] >= 'a' && str[i] <= 'z')
     str[i] = str[i] - 32; // 小寫變大寫
     
     // else if(str[i] >= 'A' && str[i] <= 'Z')
     // str[i] = str[i] + 32; // 大寫變小寫
 }
     for(int i=0; i<str.size(); i++)
 {
    cout<<str[i];
 }

【2】c++中transform()函數。orm

該函數的使用須要引用頭文件<algorithm>字符串

 string s1="AAAbbb";
 transform(s1.begin(),s1.end(),s1.begin(),toupper);
 cout<<"所有轉化爲大寫:"<<s1<<endl;
 transform(s1.begin(),s1.end(),s1.begin(),tolower);
 cout<<"所有轉化爲小寫:"<<s1<<endl;

字符串的大小比較

字符串比較:是指從左往右對單個字符或字符串進行比較大小的操做,通常都是以ASCII碼值的大小做爲字符比較的標準。string

【比較方法】it

  1. c語言strcmp(a, b)函數,比較兩個字符串的大小,a < b 返回-1,a == b 返回0,a > b返回1。這裏的比較方式是字典序!form

  2. c++ string類定義的字符串能夠直接進行比較class

【注意事項】

  1. 兩個不一樣長度的字符串進行比較時,不是長的字符串就必定。如字符串s1爲ABCE,字符串s2爲ABCDEF。對 s1 與 s2 進行比較時,s1 的第4個字符是E,s2 的第4個字符是D,而D < E,因此s1 > s2。儘管 s2 比s1長。

  2. 當字符串有空格時,空格也參加比較。如s1爲 b ook(表示空格),s2 爲book,顯示-79,故s1 < s2

  3. 大寫字母和小寫字母的ASCII代碼值是有區別的,因此,yes > YEs

  4. 當字符串所有用英文字母的大寫(或小寫)組成時,字符串的大小順序和它們在字典中的順序相同,本質仍是ASCll碼的大小比較

  5. 由漢字組成的字符串能夠參加比較。如李紅 < 王軍。它們的大小實際是由其拼音構成的字符串的大小來決定的。上例即:LIHONG < WANGJUN

回車,ASCII碼13 換行,ASCII碼10 空格,ASCII碼32

相關文章
相關標籤/搜索