21xrx.com
2024-12-22 23:39:27 Sunday
登录
文章检索 我的文章 写文章
C++如何将小写字母转换为大写字母,包括含有其它字符的字符串?
2023-06-30 14:12:15 深夜i     --     --
C++ 小写字母 大写字母 转换 字符串

在C++中,将小写字母转换为大写字母的方法比较简单,可以使用标准库函数toupper()实现,该函数可以将小写字母转换为大写字母。此外,可以将字符串中的每个字符都转换为大写或小写。

让我们看一下如何使用toupper()函数来转换字符串中的小写字母为大写字母:


#include <iostream>

#include <string>

#include <algorithm>

int main()

{

  std::string str = "Hello, World!";

  // 遍历字符串并将每个小写字母转换为大写字母

  std::transform(str.begin(), str.end(), str.begin(), ::toupper);

  std::cout << str << '\n'; // 输出 "HELLO, WORLD!"

  return 0;

}

在上面的示例中,我们首先使用了transform()函数来遍历字符串str中的每个字符,将其转换为大写字母。transform()函数需要三个参数,第一个参数是要遍历的范围的开始位置,第二个参数是要遍历的范围的结束位置,第三个参数是一个函数对象,用于处理每个元素。在本例中,我们使用了::toupper函数来将每个字符转换为大写字母。

需要注意的是,toupper()函数只能将小写字母转换为大写字母,对于其它字符,它将保持不变。如果需要将整个字符串转换为大写字母,可以使用transform()函数将每个字符都转换为大写字母:


#include <iostream>

#include <string>

#include <algorithm>

int main()

{

  std::string str = "Hello, World!";

  // 将整个字符串转换为大写字母

  std::transform(str.begin(), str.end(), str.begin(), ::toupper);

  std::cout << str << '\n'; // 输出 "HELLO, WORLD!"

  return 0;

}

如果想将整个字符串转换为小写字母,可以将toupper()替换为tolower()。

尽管toupper()和tolower()可以将字符串中的字符转换为大写或小写,但它们并不能处理带有空格、标点符号或数字的字符串。在这种情况下,需要使用条件语句来处理字符串中的每个元素,并将小写字母转换为大写字母。下面是一种示例方法:


#include <iostream>

#include <string>

int main()

{

  std::string str = "Hello, World!";

  // 将字符串中的小写字母转换为大写字母

  for (auto &c : str)

  {

    if (c >= 'a' && c <= 'z')

    {

      c = c - 'a' + 'A';

    }

  }

  std::cout << str << '\n'; // 输出 "HELLO, WORLD!"

  return 0;

}

在上述示例中,使用for循环遍历了字符串中的每个字符,并使用条件语句将小写字母转换为大写字母。如果字符c在'a'和'z'之间,则可以将其转换为大写字母,方法是减去'a'并加上'A'。

总的来说,C++中转换小写字母为大写字母的方法很多,具体选择哪种方法取决于实际需求,可以根据具体情况来选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复