如何在C ++中重复字符串?

时间:2019-05-23 19:28:37

标签: c++

我必须编写一个程序,其中要从用户输入整数值,并且该字符串必须显示多次。但是我遇到了错误。

if(current[i].type === 'folder'){
  return(
    <>
      <HelpFolder
        type={current[i].type}
        name={current[i].name}
        path={current[i].path}
      />
      {traverseFolder(current[i])}
    </>
  );
}

enter image description here

注意:不允许我在此作业中使用循环。

3 个答案:

答案 0 :(得分:2)

EDIT2:在原始要求者的评论中,此分配禁止任何形式的循环。

使用递归。

void printN(int n, string s) {
    if (n <= 0) return;
    cout << s << endl;
    printN(n-1, s);
}

然后您可以从主程序中按以下方式调用它:

printN(userInput, "Hi my name is ricky bobby");

编辑:刚刚看到您还没有学会递归。查找这个术语,并熟悉它。这是一种无需循环即可进行迭代的方法(这是我可以描述的最简单的方法)

答案 1 :(得分:2)

如果您不使用循环,则可以使用goto来绕开限制:

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

int main()
{
  int N;

  cout << "Enter N: ";
  cin  >> N;

  {
    int i = 0;
    goto test;
    begin:
    cout << "Well Done";
    ++i;
    test:
    if (i < N)
      goto begin;
  }
  return 0;
}

请注意,goto被广泛认为是不良做法。

答案 2 :(得分:-1)

std::string没有将字符串重复N次的构造函数(但是,确实有一个将单个字符重复N次的构造函数)。您需要的是一个循环,例如:

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

int main()
{
    int N;

    cout << "Enter N: ";
    cin  >> N;

    for (int i = 0; i < N; ++i)
        cout << "Well Done";

    return 0;
}