2016-12-08 15 views
2

私のクラスでは、3つの文字列を取り、それらを中心に配置する必要があります。特定の長さの文字列を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

ようこそstd::stringは、まさにこの目的のためのコンストラクタを持っています:-)正しい答えをそのようにマークするのが通例です。 –

答えて

4

それはあなたが考えるよりはるかに簡単です。

#include <string> 
#include <iostream> 

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

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

    return 0; 
} 

出力:S.O.へ

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

よろしくお願いします! –

+0

@BrendenRodgersようこそスタックオーバーフロー。質問が回答されたときの対処方法については、ヘルプドキュメントをご覧ください: http://stackoverflow.com/help/someone-answers –

関連する問題