2016-12-08 3 views
2

Для моего класса я должен взять три строки, а затем центрировать их.Создать строку определенной длины в C++

Вот ссылка на проблему, и нет, я не прошу ответа на эту проблему!
http://www.hpcodewars.org/past/cw3/problems/Prog05.htm

У меня есть все, что мне нужно, но мне нужно создать строку «*» с определенной длиной. В этом случае он должен быть 21 символом длинной звездочки, и я не знаю, как его создать.

Я имею в виду, да, я могу сделать

string test = "********************" 

, но она должна быть разной длины, как она меняется.

У меня есть переменная, установленная как долго строка должна быть, но мне нужно знать, как создать строку с определенной длиной, а затем добавить звездочки.

код до сих пор:

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string line; 
    string lines[2]; 
    int x = 0; 
    int maxLength; 
    ifstream myfile ("example.txt"); 

    if (myfile.is_open()) // opening file, setting the strings in the input stream to a variable to use at a later time 
    { 
     while (getline (myfile,line)) 
     { 
      lines[x] = line; 
      x++; 
     } 
     myfile.close(); 
    } 

    if(lines[0].length() > lines[1].length()) //finding the max length; 
    { 
     maxLength = lines[0].length(); 
    }else 
    { 
     maxLength = lines[1].length(); 
    } 
    if(lines[2].length() > maxLength) 
    { 
     maxLength = lines[2].length(); 
    } 

    maxLength = maxLength + 4; 

    cout<<maxLength<<endl; 

    return 0; 
} 
+0

Добро пожаловать в С.О. :-) Обычно принято указывать правильный ответ как таковой. –

ответ

4

Это гораздо проще, чем вы думаете. std::string имеет конструктор, только для этой цели:

#include <string> 
#include <iostream> 

int main() 
{ 
    std::string s(21, '*'); 

    std::cout << s << std::endl; 

    return 0; 
} 

Выход:

********************* 
+0

спасибо, так много! –

+0

@BrendenRodgers Добро пожаловать в переполнение стека. Пожалуйста, ознакомьтесь с документами справки о том, что делать, когда на ваш вопрос был дан ответ: http://stackoverflow.com/help/someone-answers –

Смежные вопросы