迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

C++ 中字符串的第一个字母大写

作者:迹忆客 最近更新:2023/09/03 浏览次数:

本文将介绍将字符串的第一个字母转换为大写的各种方法。


C++ 中字符串的第一个字母大写

我们将分三种不同的情况来处理这个问题:

  1. 该字符串以字母开头。
  2. 该字符串以特殊字符或数字开头。
  3. 该字符串包含一个多字节起始字符,我们需要将每个单词大写。

字符串包含字母作为第一个字符

这种情况的解决方案很简单。 我们可以使用内置的 toupper() 库函数,也可以使用用户定义的实现。

我们在 C++ 中有一个名为 toupper() 的方法。 此方法将小写字母转换为大写字母。

只需在字符串的初始索引上调用此函数即可实现该目标。

示例代码:

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

int main()
{
    string str = "sudo";
    str[0] = toupper(str[0]);
    cout << str;
}

输出:

Sudo

熟悉内置方法背后的逻辑总是明智的。 让我们寻找一种不使用内置解决方案的解决方案。

从a到z的小写字符的ASCII值在97到122之间,从A到Z的大写字符的ASCII值在65到92之间。我们从输入字符的ASCII值中扣除32以从小写到大写的转换。

检查第一个字符是否已经是大写字母总是好的。 否则,我们可能不得不面对奇怪的输出。

示例代码:

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

int main()
{
    string ML_Model = "artificial neural networks";
    if(ML_Model[0] >= 97 && ML_Model[0]<= 122){ //if it is a lowercase char
        ML_Model[0] = ML_Model[0] - 32;
    }
    cout << ML_Model;
}

输出:

Artificial neural networks

字符串的第一个字母是一个特殊字符

现在我们将讨论字符串开头可能有一些特殊字符或数字的情况。 在这种情况下,从第一个字母中减去 32 会生成一个奇怪的符号。

为了处理这种类型的字符串,我们首先使用 isalpha 方法来判断它是否是字母表。 在这个方法之后,我们将在角色上使用 toupper 函数。

示例代码:

#include <iostream>
using namespace std;

void upperCaseAlphabet (string &str)
{
    for(int i = 0; i <= str.length(); i++)
    {
        if (isalpha(str[i]))
        {
            str[i] = toupper(str[i]);
            break;
        }
    }
}

int main()
{
    string str = "#1pakistan";
    upperCaseAlphabet(str);
    cout << str;
}

输出:

#1Pakistan

具有多个包含多字节起始字符的单词的字符串

在前面的示例中,我们处理的是仅包含一个单词的字符串。 现在让我们处理包含更多单词和特殊字符的较长字符串,并将字符串中的每个单词大写。

我们将使用 toupper()、isalpha() 和 isspace() 方法来实现目标。

  1. toupper() - 将字母字符转换为大写。
  2. isalpha() - 检查字符是否是字母表。
  3. isspace() - 检查字符是否为空格。

示例代码:

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

void upperCaseAlphabet (string &str)
{
    bool flag = true;
    for(int i = 0; i <= str.length(); i++)
    {
        if (isalpha(str[i]) && flag == true)
        {
            str[i] = toupper(str[i]);
            flag = false;
        }
        else if (isspace(str[i]))
        {
            flag = true;
        }
    }
}

int main()
{
    string str = "i $love #\Traveling";
    upperCaseAlphabet(str);
    cout << str;
}

输出:

I $Love #\Traveling

上一篇:C++ 运行命令行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 C++ 中把字符串转换为小写

发布时间:2023/04/09 浏览次数:95 分类:C++

介绍了如何将 C++ std::string 转换为小写的方法。当我们在考虑 C++ 中的字符串转换方法时,首先要问自己的是我的输入字符串有什么样的编码

如何在 C++ 中删除字符串两边字符

发布时间:2023/04/09 浏览次数:143 分类:C++

本文演示了如何在 C++ 中删除字符串两边字符。使用 erase()、find_first_not_of() 和 find_last_not_of() 方法实现删除字符串两边字符

如何在 C++ 中连接两个字符串

发布时间:2023/04/08 浏览次数:191 分类:C++

本文介绍了如何在 C++ 中连接两个字符串。使用 += 运算符在 C++ 中连接两个字符串

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便