使用char數組,進行字符串的操作,是c風格的操作方式。
string是C++的風格,感覺string本質上就是一個vector<char>
以下代碼詳細展示了字符串的常見操作
1 #include <iostream> 2 #include <string> // make string class available 3 //#include <cstring> // C-style string library 4 int main() 5 { 6 using namespace std; 7 8 //char數組的用法 9 char charr1[20]; 10 int num1 = strlen(charr1);//沒有初始化的char數組,長度是未知的,原因是需要遇到‘\0’才結束 11 12 char charr2[] = "lilei,nihao";//編譯器會自動計算長度 13 char charr3[100] = "lilei,nihao"; 14 int goodFrameCount = 100; 15 sprintf_s(charr3, "chess%d.jpg", goodFrameCount);//這種用法重點學習 16 int num2 = strlen(charr3);//num2=12,strlen函數只計算可見的字符 17 int num3 = sizeof(charr3); //num3=100,sizeof計算整個數組的長度 18 19 char charr4[20]; 20 //cin >> charr4;//注意兩點:1、遇到空格,認為結束; 21 //cout << charr4 << endl; //2、當輸入的字符串長度超過charr4的長度時,也是可以顯示出來的,但不推薦使用 22 23 cin.getline(charr4, 20); // indicate maximum length,此種方法就可以輸入包含空格的字符串了 24 cout << charr4 << endl; 25 26 char charr5[20]; 27 char charr6[20] = "jaguar"; 28 strcpy_s(charr5, charr6);//賦值操作, charr6內容賦值給charr5 29 strcat_s(charr5, " juice");//添加到末尾 30 31 32 33 34 //string類的用法 35 //string類,感覺本質上講,就是一個vector<char> 36 string str; 37 int number1 = str.size();//計算個數,未初始化時,個數為0,區別於char數組 38 39 //cin >> str; 40 //cout << str << endl;//同樣存在的問題,字符串之間不能夠有空格,空格就意味着‘\0’結束的標志 41 42 getline(cin, str); 43 cout << str << endl;//就可以輸入含空格的字符串了 44 45 string s1 = "penguin"; 46 string s2, s3; 47 s2 = s1;//string的賦值簡單多了 48 s2 = "buzzard"; 49 s3 = s1 + s2;//字符串合並 50 s1 += s2;//將字符串s2添加到s1的末尾,s1的內容發生了改變 51 s2 += " for a day";//同樣是加到s2的末尾 52 53 return 0; 54 }
