c++String類
阿新 • • 發佈:2018-02-21
... getchar() 子串 ins ted 類型 num ron .com
string str3;
int len ;
// 復制 str1 到 str3 str3 = str1;
cout << "str3 : " << str3 << endl;
// 連接 str1 和 str2
str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// 連接後,str3 的總長度
len = str3.size();
cout << "str3.size() : " << len << endl;
return 0;
}
C++ 標準庫提供了 string 類類型,支持上述所有的操作,另外還增加了其他更多的功能。我們將學習 C++ 標準庫中的這個類,現在讓我們先來看看下面這個實例:
現在您可能還無法透徹地理解這個實例,因為到目前為止我們還沒有討論類和對象。所以現在您可以只是粗略地看下這個實例,等理解了面向對象的概念之後再回頭來理解這個實例。
實例
#include <iostream> #include <string> using namespace std; int main () { string str1 = "Hello"; string str2 = "World";當上面的代碼被編譯和執行時,它會產生下列結果:
str3 : Hello
str1 + str2 : HelloWorld
str3.size() : 10
string類提供了一系列針對字符串的操作,比如:
- 1. append() -- 在字符串的末尾添加字符
- 2. find() -- 在字符串中查找字符串
- 4. insert() -- 插入字符
- 5. length() -- 返回字符串的長度
- 6. replace() -- 替換字符串
- 7. substr() -- 返回某個子字符串
- 8. ...
實例:
#include <iostream>
#include <string>
using namespace std;
int main()
{
//定義一個string類對象
string http = "www.runoob.com";
//打印字符串長度
cout<<http.length()<<endl;
//拼接
http.append("/C++");
cout<<http<<endl; //打印結果為:www.runoob.com/C++
//刪除
int pos = http.find("/C++"); //查找"C++"在字符串中的位置
cout<<pos<<endl;
http.replace(pos, 4, ""); //從位置pos開始,之後的4個字符替換為空,即刪除
cout<<http<<endl;
//找子串runoob
int first = http.find_first_of("."); //從頭開始尋找字符‘.‘的位置
int last = http.find_last_of("."); //從尾開始尋找字符‘.‘的位置
cout<<http.substr(first+1, last-first-1)<<endl; //提取"runoob"子串並打印
return 0;
}
C++ 中輸入的方式其實還有很多,下面來介紹一種與 C 語言中 getchar() 類似的。
cin.getline();
cin.getline() 是在輸入一段字符完成後開始讀取數據(註意,是輸入完成後,以Enter為結束標誌)
下面是一實例:輸入一串字符,編程統計其中的數字個數和英文字母個數。輸入的字符以 # 為結束標誌。
#include<iostream>
using namespace std;
#define N 100
int main()
{
char X[N];
cin.getline(X,N); //以cin.getline形式輸入
int a=0,b=0;
for(int i=0;i<N;i++)
{
if(X[i]==‘#‘) //為#為結束標誌
break;
if(X[i]>=‘0‘&&X[i]<=‘9‘)
a++; //統計數字個數
if((X[i]>=‘a‘&&X[i]<=‘z‘)||(X[i]>=‘A‘&&X[i]<=‘Z‘))
b++; //統計英文字母個數
}
cout<<a<<endl<<b<<endl;
return 0;
}
c++String類