蓝桥杯打卡Day4


文章目录

  • 首字母大写
  • 字符串转换整数

一、首字母大写IO链接

本题思路:本题就是语法题

#include <bits/stdc++.h>

int main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);std::cout.tie(nullptr);

    std::string str;
    std::getline(std::cin,str);

    for(int i=0;i<str.size();i++){
        if(str[i]==' ') std::cout<<' ';//当前是空格跳过
        else if(i==0) std::cout<<char(std::toupper(str[i]));//对第一个字符进行特殊处理
        else if(str[i-1]==' ') std::cout<<char(std::toupper(str[i]));//如果前面一个字符是空格的话,那么说明该字符是一个单词,那么首字母需要进行大写处理
        else std::cout<<str[i];
    }

    return 0;
}

二、字符串转换整数IO链接

本题思路: 本题是一道语法题。

#include <bits/stdc++.h>

typedef int64_t i64;

int main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);std::cout.tie(nullptr);
    
    std::string s;
    std::cin>>s;
    
    bool flag=false;//用来判断当前数字的出现
    i64 res=0;
    for(auto& ch: s){
        if(isdigit(ch)){
            res=res*10+ch-'0';
            if(!flag) flag=true;
        }
        else if(flag) break;//如果当前是字母就说明第一个数字可能已经产生
    }
    
    if(res>INT_MAX||!flag) std::cout<<-1<<std::endl;//超过int范围返回-1
    else std::cout<<res<<std::endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_67458830/article/details/132725097
今日推荐