我正在学习C++的基础知识,我正在尝试编写一个简单的函数,将给定输入中每个单词的每个字母都大写。我写的:大写功能无法正常工作
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
int main()
{
std::cout << "Please enter a sentence: ";
std::vector<std::string> words;
std::string x;
while (std::cin >> x) {
words.push_back((std::string) x);
}
std::cout << std::endl;
std::vector<std::string>::size_type size;
size = words.size();
for (int j = 0; j != size; j++) {
std::string &r = words[j];
for (int i = 0; i != r.length(); i++) {
r = toupper(r[i]);
std::cout << r << std::endl;
}
}
}
返回大写的每个单词的第一个字母。例如,如果我写的Hello World程序返回:
H
W
有人能告诉我什么,我做错了,如何解决它。
删除'(std :: string)'cast - 它什么都不做。 –
*我试图编写一个简单的函数,将给定输入中每个单词的每个字母都用大写* - 如果您考虑学习算法函数“C++基础知识”,您可以简单地使用'std :: transform(words [j] .begin(),words [j] .end(),words [j] .begin(),toupper);'而不是'i'循环。 – PaulMcKenzie