题解 | 首字母大写
首字母大写
https://www.nowcoder.com/practice/91f9c70e7b6f4c0ab23744055632467a
#include <iostream>
#include<sstream>
using namespace std;
int main() {
string str;
while (getline(cin, str)) {
//先判断第一个字母是否是大小写
bool isfirst = false;
if (str[0] >= 'a')isfirst = true;
//由于中间不一定只有一个空格,所以不能yongsstream的方法
for (int i = 0, j = 0; i < str.size(); i++) {
while (i < str.size()&&!((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'||(str[i]>='0'&&str[i]<='9')))) {
isfirst = true;
i++;
if (i == str.size())isfirst = false;
}
if(str[i]>='0'&&str[i]<='9')isfirst = false;
if (str[i] >= 'a' && isfirst)
str[i] = str[i] - ('a' - 'A'),isfirst=false;
}
cout << str << endl;
// stringstream ss(str);
// string res;
// string tmp;
// while(ss>>tmp){
// if(tmp[0]>='a')tmp[0]=
// res+=tmp+' ';
// }
// cout<<res<<endl;
}
}
// 64 位输出请用 printf("%lld")
查看19道真题和解析