我知道函数必须返回一个整数,但在其中,我以大写字母逐字打印,并且还打印出我被迫返回的0。我尝试引用void capital(string& _name)
但这只是给了我很多错误。我想我需要在for
内返回一些内容,但我没有更多的想法。我该怎么办?
int capital(string& _name){
locale loc;
for(std::string::size_type i = 0; i < _name.length(); i++){
cout << std::toupper(_name[i], loc);
}
return 0;
}
int main(){
string name = "robbie";
cout << capital(name) << endl;
system("pause");
return 0;
}
答案 0 :(得分:1)
改变这个:
cout << capital(name) << endl;
到此:
capital(name);
cout << endl;
答案 1 :(得分:1)
让它返回一个字符串。请注意,我不在capital
内输出字符串,只是构造一个新的大写字母并返回它,但是逻辑与原始版本非常相似。
#include <string>
#include <iostream>
std::string capital(const std::string& _name){
std::locale loc;
std::string name_copy = _name;
for(std::string::size_type i = 0; i < name_copy.length(); i++){
name_copy[i] = std::toupper(name_copy[i], loc);
}
return name_copy;
}
int main(){
std::string name = "robbie";
std::cout << capital(name) << std::endl;
return 0;
}
答案 2 :(得分:0)
您绝对可以将函数的返回类型更改为void。您的问题是您如何在main方法中调用该函数。
您的capital()
方法已在使用cout
,因此在main()
中,请更改:
cout << capital(name) << endl;
为:
capital(name) << endl;