将字符串更改为大写字母的功能
Changing string to capital letters function
我正在处理一些练习,根据这些练习,我必须将输入的字符串更改为相同的字符串,用大写字母书写。
这是我的尝试,出于某种奇怪的原因,它只打印出字符串的第一个单词,而不读取空格后的位。。。有什么办法吗?
#include <iostream>
#include <string>
using namespace std;
void uppercase(string str)
{
locale loc;
for(size_t i=0; i<str.length(); ++i)
{
cout << toupper(str[i], loc);
}
}
int main(void)
{
string text;
cout << "Input text, please: " << endl;
cin >> text;
uppercase(text);
}
我知道可能有不同的方法来解决这个问题,但我想坚持我的方法。有任何潜在的错误吗?
当然,使用std::getline
可以获得整行而不是一个单词。实际上,你几乎应该总是使用它,因为面向行是大多数程序接受输入的方式。
从std::cin
读取是用空格分隔的。为了使整个字符串上升到一个新行,您需要std::getline
。
std::getline( std::cin, text);
void uppercase(string str)
{
locale loc;
for(size_t i=0; i<str.length(); ++i)
{
if(str[i] != " ")
{
cout << toupper(str[i], loc);
}
}
}
相关文章:
- 如何在 c++ 中将所有大写字母转换为字符串中的小写字母,反之亦然?
- 大写字母
- 字符数组[]中的小写大写字母C++通过指针
- 如何在德语大写字母 Ä, Ö, Ü, ẞ 上正确应用 C++
- 删除 C 字符串中的大写字母
- 如何检查包含 utf8 文本的 std::string 在 Windows 中是否以大写字母开头?
- 正则表达式表示非连续大写字母和小写字母
- C++函数来检查 char 是否是大写字母,并且不计算给定字符串中的大写字母
- 将大写字母(从 cin 读取)更改为小写
- 如何验证小写和大写字母
- opencv :无法通过等待键读取大写字母
- 降低字符串字符,并在转换的大写字母前添加一个_
- 接收字符串,检查大写字母
- 如何计算字符串中大写字母、小写字母和数字的数量
- 如何在c++中用大写字母打印地址(十六进制值)
- Python:获取两个大写字母之间的字符串
- 使用std::sort对字符串进行排序,使大写字母位于小写字母之后
- 我的 cipher() 函数似乎不支持大写字母
- 在递归函数中计算大写字母
- 将字符串更改为大写字母的功能