3.2.3 處理string對象中的字符
遍歷string中的每個字符
#include<iostream>
int main()
{
/*
std::string str("some string");
//每行輸出 str中的一個字符
for(auto c : str)
std::cout<<c<<std::endl;
*/
/*
std::string s("Hello World!!!");
// punct_cnt 的類型和s.size的返回類型一樣
decltype(s.size()) punct_cnt = 0;
for(auto c:s)
if(ispunct(c))
++punct_cnt;
std::cout<<punct_cnt
<<" punctuation characters in "<< s <<std::endl;
*/
std::string s("some string");
for(decltype(s.size()) index = 0;
index != s.size() && !isspace(s[index]);++index)
s[index] = toupper(s[index]);
std::cout<<s<<std::endl;
std::string s1("hello world!!!");
//轉換為大寫形式
for(auto &c:s1) //對于s中的每個字符(注意:c是引用)
c = toupper(c); //c是一個引用,因此賦值語句將改變s中字符的值
std::cout<<s1<<std::endl;
return 0;
}
note:
string 對象的下標必須大于等于0而小于s.size()。
使用超出下標的將引發不可預知的結果。