题解 | #首字母大写#

首字母大写

https://www.nowcoder.com/practice/91f9c70e7b6f4c0ab23744055632467a

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

int main(){
    char str2[102] = {0};
    string str1;
    while(getline(cin,str1)){
        //在最开始加1个空格,用来统一对单词的检查条件
        str1 = ' '+ str1;
        for(int i = 0;i<str1.size();i++){
            str2[i] = str1[i];
        }
        for(int i = 0;i<str1.size();i++){
            //这里单词的检查条件不只1个,读题要仔细
            if(str2[i]==' '||str2[i]=='\t'||str2[i]=='\r'||str2[i]=='\n'){
                if('a'<=str2[i+1] && str2[i+1]<='z'){   //基础语法,1<2<3要用&&
                    //大小写转换,ascii大写字母在小写字母后面
                    str2[i+1] = str2[i+1]+'A'-'a';
                }
            }
        }
        //为了用c++风格字符串的函数,再把str2赋值回str1
        str1 = str2;
        int n = str1.size()-1;
        cout<< str1.substr(1,n);    //用字符截取函数,实现排除最开始加的第1个空格
    }
}

全部评论

相关推荐

拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务