C++<bits/stdc++.h>

问题遇到的现象和发生背景

C++2010

操作环境、软件版本等信息

编写一个程序,把输入的字符串修改为开头字母大写,后面字母小写的格式。

尝试过的解决方法

#include <bits/stdc++.h>
using namespace std;
int main()
{

    return 0;
}
我想要达到的结果

【输入】
一个字符串s。保证字符串中的字符都是英文字母。
【输出】
一个字符串,表示将字符串s转换后的结果。


#include <bits/stdc++.h>
using namespace std;
int main()
{
    string a;
    cin>>a;
    for(int i=1;i<a.length();i++)
    {
        if(a[0]>='a'&&a[0]<='z')
        {
            a[0]-=32;
        }
        if (a[i]>='A'&&a[i]<='Z')
        {
            a[i]+=32;
        }
    }
    cout<<a;
    return 0;
}

又在自问自答作弊?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7724110
  • 这篇博客你也可以参考下:C++万能头文件 bits/stdc++.h 的用法和优缺点 包含哪些文件头
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用C++的字符串操作函数和字符操作函数来实现将字符串的首字母大写,其余字母小写的功能。下面是一个示例代码实现:

    #include <iostream>
    #include <string>
    #include <cctype>
    using namespace std;
    
    string capitalizeString(string s) {
        if (s.empty()) {
            return "";
        }
    
        // 将首字母转换为大写
        s[0] = toupper(s[0]);
    
        // 将剩余字母转换为小写
        for (int i = 1; i < s.length(); i++) {
            s[i] = tolower(s[i]);
        }
    
        return s;
    }
    
    int main() {
        string input;
        cout << "请输入一个字符串: ";
        cin >> input;
    
        string result = capitalizeString(input);
        cout << "转换后的结果为: " << result << endl;
    
        return 0;
    }
    

    解释代码:

    1. 引入所需的头文件:
    2. iostream:用于输入输出流操作。
    3. string:用于处理字符串。
    4. cctype:用于字符操作函数。

    5. 定义一个函数capitalizeString来实现字符串首字母大写,其余字母小写:

    6. 首先判断字符串是否为空,如果为空则直接返回空字符串。
    7. 使用toupper函数将字符串的第一个字符转换为大写。
    8. 使用tolower函数将字符串剩余的字符都转换为小写。使用一个循环遍历字符串中的每个字符,从索引1开始。
    9. 返回转换后的字符串。

    10. main函数中,首先提示用户输入一个字符串,并使用cin进行输入。

    11. 调用capitalizeString函数将输入的字符串进行转换,并将结果保存到result变量中。
    12. 输出转换后的结果。

    这样,就可以实现将输入的字符串中的首字母改为大写,其余字母改为小写的功能了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^