C++ 中字符串的第一个字母大写
本文将介绍将字符串的第一个字母转换为大写的各种方法。
C++ 中字符串的第一个字母大写
我们将分三种不同的情况来处理这个问题:
- 该字符串以字母开头。
- 该字符串以特殊字符或数字开头。
- 该字符串包含一个多字节起始字符,我们需要将每个单词大写。
字符串包含字母作为第一个字符
这种情况的解决方案很简单。 我们可以使用内置的 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() 方法来实现目标。
-
toupper()
- 将字母字符转换为大写。 -
isalpha()
- 检查字符是否是字母表。 -
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++ 中把字符串转换为小写
发布时间:2023/04/09 浏览次数:95 分类:C++
-
介绍了如何将 C++ std::string 转换为小写的方法。当我们在考虑 C++ 中的字符串转换方法时,首先要问自己的是我的输入字符串有什么样的编码
如何在 c++ 中查找字符串中的子字符串
发布时间:2023/04/09 浏览次数:134 分类:C++
-
本文介绍了在 C++ 中检查一个字符串是否包含子字符串的多种方法。使用 find 方法在 C++ 中查找字符串中的子字符串
如何在 C++ 中把字符串转换为 Char 数组
发布时间:2023/04/09 浏览次数:137 分类:C++
-
本文介绍了在 C++ 中把字符串转换为 char 数组的多种方法。使用 std::basic_string::c_str 方法将字符串转换为 char 数组
如何在 C++ 中把 Char 数组转换为字符串
发布时间:2023/04/09 浏览次数:264 分类:C++
-
本文介绍了在 C++ 中将 char 数组转换为字符串的多种方法。使用 std::string 构造函数将 char 数组转换为 string
如何在 C++ 中删除字符串两边字符
发布时间:2023/04/09 浏览次数:143 分类:C++
-
本文演示了如何在 C++ 中删除字符串两边字符。使用 erase()、find_first_not_of() 和 find_last_not_of() 方法实现删除字符串两边字符
如何在 C++ 中替换字符串的一部分
发布时间:2023/04/08 浏览次数:241 分类:C++
-
本文介绍了如何在 C++ 中替换字符串的某一部分。在 C++ 中使用 replace() 方法替换字符串的一部分
如何在 C++ 中忽略大小写的比较两个字符串
发布时间:2023/04/08 浏览次数:238 分类:C++
-
本文介绍了如何在 C++ 中比较两个字符串而忽略大小写的方法。使用 strcasecmp 函数比较两个忽略大小写的字符串
如何在 C++ 中对一个字符串进行标记化
发布时间:2023/04/08 浏览次数:195 分类:C++
-
本文将介绍几种在 C++ 中对字符串进行标记化的方法。使用 find 和 substr 函数在 C++ 中对一个字符串进行标记化