如何阻止我的函数返回 0

How do I stop my function from returning 0?

本文关键字:返回 函数 我的 何阻止      更新时间:2023-10-16

我知道该函数必须返回一个整数,但是在其中,我以大写字母逐个字母打印,并且它还打印出我被迫返回的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;
}

更改以下内容:

    cout << capital(name) << endl;

对此:

    capital(name);
    cout << endl;

让它返回一个字符串。请注意,我不会在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;
}

您绝对可以将函数的返回类型更改为 void。您的问题是如何在 main 方法中调用函数。

您的capital()方法已经在执行cout,因此在您的main()中,更改:

 cout << capital(name) << endl;

自:

capital(name) << endl;