You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用含string与int参数的函数?我的字符串重复函数未正常运行

问题分析与修复方案

你的代码存在两个关键问题,导致调用repeat("str", 5)无法得到预期结果:

1. 传入的参数被函数内部覆盖

你在repeat函数里通过cin重新读取了str和n的值,这直接覆盖了main函数调用时传入的"str"和5。也就是说,你传的参数完全没起作用,实际执行时用的是用户输入的内容。

2. 未输出函数返回结果

main函数中把repeat的返回值存到了repeat_main变量里,但没有打印这个变量,所以即使函数逻辑正确,你也看不到最终结果。

修复后的代码(直接使用传入参数的版本)

#include <iostream>
#include <string>
using namespace std;

string repeat(string str, int n);
int main ()
{
    string repeat_main;
    repeat_main = repeat("str", 5);
    // 新增:打印最终结果
    cout << repeat_main << endl;
}

string repeat(string str, int n)
{
    string repeated_str;
    int i = 0;
    // 移除覆盖参数的输入代码
    // cout << "enter the word you would like to repeat: ";
    // cin >> str;
    // cout << "how many times would you like it to repeat? ";
    // cin >> n;

    while (i < n)
    {
        repeated_str += str;
        i++;
    }
    return repeated_str;
}

补充:支持用户输入的版本

如果想保留让用户输入内容的功能,应该把输入逻辑放到main函数中,让repeat只负责重复字符串的核心功能,这样函数的通用性更强:

#include <iostream>
#include <string>
using namespace std;

string repeat(string str, int n);
int main ()
{
    string input_str;
    int input_n;
    // 在main中获取用户输入
    cout << "enter the word you would like to repeat: ";
    cin >> input_str;
    cout << "how many times would you like it to repeat? ";
    cin >> input_n;
    
    string repeat_main = repeat(input_str, input_n);
    cout << repeat_main << endl;
}

string repeat(string str, int n)
{
    string repeated_str;
    int i = 0;
    while (i < n)
    {
        repeated_str += str;
        i++;
    }
    return repeated_str;
}

内容的提问来源于stack exchange,提问作者Thegillian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 06:13:29