2017-11-08 28 views
-1

文字列配列にデータを配置する方法について質問があります。「文字列」、数字、「文字列」、文字列内の別の数字を入力する方法

for(int i{};i<num;i++) 
    string[i]={"The degree of",i,"'th vertice is",degree[i]} 

私はこれを試してきましたが、C++では実用的ではないことを知っていますが、それ以外の方法はありますか、私の目標は度と呼ばれる関数によって保存される文字列を返すことです。私は言及している(例えば、「4番目の頂点の度合は2」)。 そうすることが可能ですか?あなたの注意のための

std::cout<<degree(); 

おかげ: 私は以下のように関数を呼び出したいです。

+4

'ストリング+ STD [I] = "度" :: to_stringに(I)+ "'番目の頂点は" +のstd :: to_stringに(度[I]);' – JLev

+0

おかげあなたの答えは (4番目の頂点の次数は2(改行)) 5番目の頂点の次数は3(改行) 6thの次数頂点は0(改行) 7番目の頂点の次数は6) –

+0

[mcve]を入力してください。あなたは、あなたが何をしたいのか、何か違うものではないことを求めてください;)この 'std :: cout << degree();'のような文字配列を表示することはできません(対応するオーバーロードを与えない限り)文字列とint – user463035818

答えて

1

確かに、すべてを1つの文字列に入れて、各論理行の間に改行('\n')を置くことができます。あなたは(OPがあることを望んでいないとして、FNC度に渡す引数を削除するために編集した)だけでなく、このような何かを試みることができる

std::string degrees() 
{ 
    std::string lines; 

    for(int i{};i<num;i++) 
     lines += "The degree of " + std::to_string(i) + 
       "'th vertice is " + std::to_string(degree[i]) + '\n'; 

    return lines; 
} 
+0

私はそれが完全に私が望むものだと思うおかげです。 –

+1

@ A.salehyそれを[受け入れられた回答](https://stackoverflow.com/help/accepted-answer)としてマークしてください!これはSOにお礼を言う正しい方法です。 – Hamed

1

::ちょうど上に与えられたコードスニペットを組み合わせ

#include <iostream> 
#include <sstream> 

std::vector<int> degree = { 1,5,4,8,2,12,4,30,45,22 }; 

std::string degrees() 
{ 
    std::ostringstream oss; 

    for (size_t i = 0; i < degree.size(); ++i) 
     oss << (i > 0 ? "\n" : "") << "The degree of " << i + 1 << "'th vertice is " << degree[i]; 

    return oss.str(); 
} 

int main() 
{ 

    std::cout << degrees() << std::endl; 

    return 0; 
} 

版画:

enter image description here

+0

小さな改善を提案する:入力操作を必要としない場合は、 'std :: ostringstream'を使用してください。 – Murphy

+0

@ Murphyありがとう、追加されました! –

+0

答えをありがとうが、私は関数 "度"をパラメータなしで使用する必要があります。 –

関連する問題