在編程題中,需要輸入字符的時候,到底改用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類型。