C++ 将字符串中每个单词的首字母和末字母大写
在本教程中,我们实现了一种方法,将输入字符串中每个单词的首字母和末字母大写。通过对输入字符串str进行迭代,将每个单词的起始和结束字母大写。我们用C++编程以两种方式实现了这个问题。让我们从一些演示开始本教程。
示例1
String = “coding world”
输出
CodinG WorlD
在上面的演示中,考虑输入字符串和将字符串的每个单词的起始和结束字符大写后的结果为CodinG WorlD。
示例2
String = “`hello all”
输出
hellO AlL
在上面的示例中,输入字符串为“hello all”。将字符串中每个单词的开头和结尾字符大写后的结果为hellO AlL。
C++库函数
length(): 它是一个字符串类库函数,定义在C++标准库中。它返回输入字符串的字节长度。字符串的长度是字符串中字符的总数。
语法
string_name.length();
isalpha(): 此内置库函数在<ctype>
头文件中定义。 它检查字符串字符是否为字母。 当字符串的字符是字母时,它返回一个整数值,否则返回零。
句法
isalpha(char);
toupper() : 该C++库函数在<cctype>
头文件中定义。它将小写字符转换为大写。
语法
toupper(char);
步骤
- 获取输入字符串。
-
获取字符串数组。
-
使用for循环迭代输入字符串中的所有字符。
-
检查和大写每个单词的第一个和最后一个字符。
-
如果第一个和最后一个字符是大写的,则移动到下一个字符。
-
检查空格和非字母字符。
-
打印结果字符串。
示例1
这里,我们实施上述示例之一。函数capitalizeString()返回结果字符串。在for循环中,一个字符串newString被用作等同于输入字符串。每个输入字符串的字母都在for循环中迭代。
#include<bits/stdc++.h>
using namespace std;
string capitalizeString(string s)
{
// Creating an string similar to input string
string newStr = s;
for (int x = 0; x < newStr.length(); x++)
{
int l = x;
while (x < newStr.length() && newStr[x] != ' ')
x++;
// Checking if character is capital or not
newStr[l] = (char)(newStr[l] >= 'a' && newStr[l] <= 'z'
? ((int)newStr[l] - 32)
: (int)newStr[l]);
newStr[x - 1] = (char)(newStr[x - 1] >= 'a' && newStr[x - 1] <= 'z'
? ((int)newStr[x - 1] - 32)
: (int)newStr[x - 1]);
}
return newStr;
}
int main()
{
string s = "hello tutorials point";
//cout << s << "\n";
cout << "Resulting string after capitalizing the first and last alphabet of each word is : "<<capitalizeString(s);
}
输出
Resulting string after capitalizing the first and last alphabet of each word is : HellO TutorialS PoinT
示例2
实现将字符串中每个单词的第一个和最后一个字符大写的任务。用户定义的函数capitalizeString()遍历字符串的每个字符,并检查单词的第一个和最后一个字符。当到达它们时,它将字符大写。大写的单词存储在result变量中,并返回结果。
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string capitalizeString(string str)
{
// Flag to track if the current character is the first character of a word
bool newWord = true;
for (size_t x = 0; x < str.length(); ++x)
{
if (isalpha(str[x]))
{
// Check if the character is alphabetic
if (newWord)
{
// Capitalize the first character of the word
str[x] = toupper(str[x]);
newWord = false;
}
if (x + 1 == str.length() || !isalpha(str[x + 1]))
{
// Capitalize the last character of the word
str[x] = toupper(str[x]);
newWord = true;
}
}
else
{
newWord = true;
}
}
return str;
}
int main()
{
string str = "hello coding world";
string result = capitalizeString(str);
cout << "Resulting string after capitalizing first and last character is: " << result << endl;
return 0;
}
输出
Resulting string after capitalizing first and last character is: HellO CodinG WorlD
结论
我们已经到达了本教程的结尾。在本教程中,我们学习了一种方法,即对输入字符串中每个单词的第一个和最后一个字符进行大写。我们通过两个C++代码实现了这个方法。使用不同的C++库函数如length(),isalpha()和toupper()来实现这个问题。