C++ string應用
阿新 • • 發佈:2018-12-07
兩個函式,一個是由大寫轉小寫,一個是識別名字中的姓和名
#include<stdio.h> #include<string> #include<iostream> using namespace std; //例CH30_E2中,函式ToLowercase用於將一個string物件從大寫變為小寫。程式碼如下所示。 string ToLowercase(string str) { char ch; string str1; str1.resize(128); int Size = size(str); for (int i = 0; i < Size; i++) { ch = str[i]; if (ch >= 'A'&&ch <= 'Z') { ch = ch- 'A' + 'a'; str1.append(1,ch); } else if (ch== ' ' ||ch =='!'||ch=='?') { str1.append(1, ch); } else { throw - 101; } } return str1; } //例CH30_E3:姓名字串由兩部分組成,中間以多個空格或Tab分開,要求寫一個函式將姓和名都提取出來。若輸入“LiMing",則解析出姓為“Li"名為"Ming"。 string XingmingTQ(string str) { string str1; string str2 ; string str3; int posKG = str.find(' '); int posKG1 = str.find(' ', posKG + 1); cout << posKG<<' ' << posKG1 << endl; if (posKG <0&&posKG1<0) throw -101; else if(posKG >=0 && posKG1 == -1) { str1 = str.substr(0, posKG); str2 = str.substr(posKG + 1); cout << "xing:" << str1 << endl; cout << "ming:" << str2 << endl; } else if (posKG >= 0 && posKG1 >=0) { str1 = str.substr(0, posKG); str2 = str.substr(posKG + 1,posKG1-posKG);//str.substr的第二個引數是拷貝的長度 str3= str.substr(posKG1 + 1); cout << "xing:" << str1 << endl; cout << "Mming:" << str2 << endl; cout << "FMming:" << str3 << endl; } return str1, str2, str3; } int main() { try { string str("WHAT THE HELL?"); string str1; str1 = ToLowercase(str); cout << str1 << endl; string str4 = "Edward Kullen Rechard"; string str5 = XingmingTQ(str4); return 0; } catch (int n) { cout << "out of range" << endl; } }
結果如下所示