天天看點

c++primer第五版 練習5.21

使用continue判斷重複單詞以大寫開頭

很重要的一個細節就是:

即使是那些非大寫單詞由于他們被輸入過,是以疊代時候要注意

後值要傳給前值;

對于字元串使用cin輸入時是有風險的

比如你想輸入的是 “ Li LEI” 中間含間隔

c++primer第五版 練習5.21

然而使用cin讀取字元串的時候,卻把他們分成兩個字元串 。。。

個人覺得字元串 使用 getline(cin,變量) 來整行輸入好些。。

畢竟字元串不同于其他變量

使用getline(cin,變量)讀取整行字元串的代碼

切記一行一字元串,輸入後需回車;

#include<iostream>
#include<vector>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
    string i="",j="";
    int cnt=;
    while(getline(cin,j)&&!j.empty())
    {  
        if(j[]<||j[]>)
        {
              i=j;
             cnt=;
             continue;  
        }
        if(j!=i)
        {
          i=j;
          cnt=;
        }
        else
        {
          ++cnt;
          cout<<"連續重複出現兩次的字元串是:"<<j<<endl;
          break; 
        }
    }
    if(cnt==)
        cout<<"沒有字元串重複出現過"<<endl;
    return ;       
} 
           

當輸入 GTV V

GTV V

c++primer第五版 練習5.21

以下是使用cin輸入的

#include<iostream>
#include<vector>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
    string i="",j="";
    int cnt=;
    while(cin>>j&&!j.empty())
    {  
        if(j[]<||j[]>)
              i=j;
             cnt=;
             continue;        
        if(j!=i)
        {
          i=j;
          cnt=;
        }
        else
        {
          ++cnt;
          cout<<"連續重複出現兩次的字元串是:"<<j<<endl;
          break; 
        }
    }
    if(cnt==)
        cout<<"沒有字元串重複出現過"<<endl;
    return ;       
} 
           

繼續閱讀