从函数c ++返回一个字符串

时间:2013-09-08 15:45:47

标签: c++ string function

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

**

**

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

3 个答案:

答案 0 :(得分:4)

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

std::string有一个构造函数,用于构造一个包含给定字符的N个副本的字符串:

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

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

答案 1 :(得分:1)

现有的答案都是错误的,你想要:

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

答案 2 :(得分:0)

在你的代码中,你在for循环中定义了一个局部变量string s1,它掩盖了外部定义的变量。因此,在每次迭代中,您将一个星号添加到空s1字符串中。而且,replace = + with + =。如果所需的输出是:

for size = 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; 
}