C++實現 單詞首字母大寫
阿新 • • 發佈:2020-12-15
所謂“單詞”是指連續不含空格的字串,各單詞之間用空格分隔,空格數可以是多個。
要求編寫程式,輸入一行字元,將每個單詞的首字母改為大寫並去掉多餘空格後輸出。即輸入時若單詞間有多個空格,輸出時單詞之間只保留一個空格。
輸入
輸入給出一行字元。
輸出
在一行中輸出已輸入的字元,其中所有單詞的首字母已改為大寫,單詞之間只用一個空格分隔。
樣例輸入
How are you?
樣例輸出
How Are You?
程式碼
#include<iostream>
#include<cstring>
using namespace std;
int main(){
string str;
getline(cin,str);
for(int i = 0; i < str.size(); i++){
if(str[0] >= 'a' && str[0] <= 'z') str[0] -= 32;
if(str[i-1] == ' ' && str[i] >= 'a' && str[i] <= 'z')
str[i] -= 32;
}
int p;
for(int i = 0;i < str.size(); i++){
if(str[i]!=' '){
p = i;
break ;
}
}
for(int i = p;i < str.size(); i++){
if(str[i]==' ' && str[i+1]== ' '){
continue;
}
cout<<str[i];
}
return 0;
}