我正在學習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