c++ primer 閱讀 day6

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()。
使用超出下標的將引發不可預知的結果。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,933評論 18 139
  • 集合框架: 1)特點:存儲對象;長度可變;存儲對象的類型可不同2)Collection(1)List:有序的;元素...
    Demo_Yang閱讀 1,286評論 0 4
  • 1.會說話的人想話說,不會說話的人搶話說; 2.面對選擇,分清甜頭和代價,是不是真的想要,還是有其他因素影響; 3...
    程藝0428閱讀 448評論 0 0
  • ■王紅娟 一道彩虹東邊現 美麗風景突現 人隨潮流向前奔 一路高歌永不停 踐行公仆永不忘 一心為民精神傳 下葉人多路...
    朝花夕拾杯中酒123閱讀 317評論 1 17