题解 | 首字母大写

首字母大写

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")

全部评论

相关推荐

牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务