程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 使用迭代器尋找和刪除 string 對象中所有的大寫字符。

使用迭代器尋找和刪除 string 對象中所有的大寫字符。

編輯:C++入門知識

C++ Primer  習題9.35給出的答案如下: [cpp]   #include<iostream>   #include<cctype>   #include<string>   using namespace std;   int main()   {<span style="color:#ff0000;">string str = "This IS A  Example";   </span> for(string::iterator iter = str.begin();     iter != str.end();++iter){     if(isupper(*iter)){      str.erase(iter);      --iter;     }     }    for(string::iterator iter = str.begin();     iter != str.end();++iter)     cout<<*iter<<" ";    return 0;   }   以上運行報錯。 解: 由於第一個字母為T,--iter後 --iter--ite,,r則超出迭代范圍了。 改成string str = "this is A exaMple"; 如下,則可通過 [cpp]   #include<iostream>   #include<cctype>   #include<string>   using namespace std;   int main()   {       string str = "this is A exaMple";       for(string::iterator iter = str.begin();           iter != str.end();++iter){           if(isupper(*iter)){               str.erase(iter);               --iter;           }          }       for(string::iterator iter = str.begin();           iter != str.end();++iter)           cout<<*iter<<" ";       return 0;   }    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved