题解 | #首字母大写#
首字母大写
https://www.nowcoder.com/practice/91f9c70e7b6f4c0ab23744055632467a
#include<iostream> #include<string> using namespace std; int main(){ string str; bool flag = true; while(getline(cin, str)){ for (int i=0;i<str.length();i++){ if (str[i] == ' ' || str[i] == '\t' || str[i] == '\r' || str[i] == '\n'){ flag = true; // 分隔符之后才可能出现首字母 continue; } else if (flag) { // 不是分隔符时,flag为true表示第一个非分隔符 if (str[i] >= 'a' && str[i] <= 'z'){ // 若为小写字母,则改为大写;若为其他字符,则不变 str[i] -= 32; } flag = false; // 不管是否修改为大写字母,都要修改flag,表示已经不是首个非分隔符 } } cout << str << endl; } }
用flag变量来表示出现首个非分隔符