getline,cin的使用場合以及string類型中每個字符的含義

在編程題中,需要輸入字符的時候,到底改用getline還是cin,getline默認是以回車爲結束符的,所以如果需要輸入的是一個含有空格的字符串,那麼直接用默認的getline函數一次就可以了,而cin是以空格爲結束符的,所以如果要將一個含有空格的字符串裏面的字符全部輸入的話,需要用一個循環while(cin>>str);
string類型的每個字符str[i]是int類型的,不再是string類型,如果需要將輸入的單個字符c與str[i]進行比較的話,單個字符c可以通過c=getchar();從鍵盤輸入。
以下面這道題爲例:

題目描述
寫出一個程序,接受一個由字母和數字組成的字符串,和一個字符,然後輸出輸入字符串中含有該字符的個數。不區分大小寫。 
輸入描述:
輸入一個有字母和數字以及空格組成的字符串,和一個字符。
輸出描述:
輸出輸入字符串中含有該字符的個數。
示例1 
輸入
複製
ABCDEF A
輸出
複製
1
#include <string>
#include <iostream>
using namespace std;
int main()
{
    string str;
    getline(cin,str);
    char c;
    c=getchar();
    int count=0;
    for (int i=0;i<str.size()-1;i++)
    {
      if((str[i]==c)||(str[i]==c+32)||(str[i]==c-32))
      count++;
    }
    cout<<count<<endl;
    
   
    return 0;
}

從上面可以看出來,c與str[i]是可以進行比較的,因爲二者都是int類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章