从函数 c++ 返回字符串

Returning a string from a function c++

本文关键字:字符串 返回 c++ 函数      更新时间:2023-10-16

基本上,我想编写一个程序,该程序使用一个函数显示在屏幕上的星号。长度由输入 parameter.so 指定,如果用户输入 2,它将如下所示:

**

**

string myfunct(int thelength)
{
    string s1;
    for (int i=1;i<=thelength;i++)
    {
        string s1 =+ " * ";
    }
    return s1;
}

回答原始问题,该问题要求一个函数返回带有n星号的字符串,其中n由调用方输入。

std::string有一个构造函数,该构造函数具有给定字符的 N 个副本的字符串:

std::string myfunct(int thelength)
{
  return std::string(theLength, '*');
}

这将返回一个由theLength星号*组成的字符串。

现有的答案都做错了,你想要:

std::string asterisks(int n) { return std::string(n, '*'); }

在代码中,定义一个局部变量 string s1 for 循环,该变量掩盖了外部定义的变量。因此,在每次迭代中,您都会向空s1字符串添加一个星号。此外,将 =+ 替换为 +=。如果所需的输出为:

大小 = 2

**
**

大小 = 3

***
***

那么你的代码可能是这样的:

#include<iostream>
using namespace std;
string myfunct(int thelength)
{
    string s1; 
    for (int i=1;i<=thelength;i++)
    {   
        s1 += " * ";
    }   
    return s1; 
}
int main()
{
    cout << "Enter no of stars: ";
    int size;
    cin >> size;        
    cout << myfunct(size) << endl; 
    cout << endl; 
    cout << myfunct(size) << endl; 
}