基本上,我想编写一个使用函数在屏幕上显示星号的程序。长度由输入参数指定。所以如果用户输入 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;
}