-6

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

**

**

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

3 回答 3

4

回答最初的问题,它要求一个函数返回一个带n星号的字符串,n调用者在哪里输入。

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

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

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

于 2013-09-08T15:52:01.400 回答
1

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

std::string asterisks(int n) { return std::string(n, '*'); }
于 2013-09-08T15:52:08.857 回答
0

在您的代码中,您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; 
}
于 2013-09-08T15:49:50.277 回答