私は、ユーザーに名字の入力を促す質問があります。最後と最初の名前をカンマとスペースで区切って保持するように3番目の配列を宣言します。ループを使用して名前を一度に1文字ずつ繰り返し、フルネーム配列に格納します。2つのcharまたはstring配列を1つの配列にどのように追加しますか?
それは簡単に聞こえますが、私はそれに非常に苦労しています。私はstrncpyやmemcpy、strncatのように質問しない方法であっても、複数の方法で試してみました。たぶん私はちょうど正しく理解していないでしょう。任意の助け
char FirstName[15];
char LastName[15];
char FirstLast[30];
cout << "Enter your first name: ";
cin >> FirstName;
cout << "Enter your last name: ";
cin >> LastName;
for (int i = 0; i<30; i++)
{
if (i < 15) {
FirstLast[i] = LastName[i];
}
else {
FirstLast[i] = FirstName[i - 5];
}
}
cout << FirstLast;
感謝を:
これは私が現在持っているものです。
なぜプレーンアレイを使用していますか?追加は['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string)で非常に簡単です(バッファオーバーフローについて心配する必要はありません)。 –
あなたが表示しているコードは、2つの問題があります。最初は 'FirstName [i - 5]'です。私は '5'ではなく' 15'を意味すると思いますか? 2番目の問題は、Cスタイルの文字列が*終了していることを忘れることです。ターミネータを確認したり、宛先に追加したりすることはありません。 –
最後に、*配列で問題を解決するには、['std :: strcpy'](http://en.cppreference.com/w/cpp/string/byte/strcpy)と[' std :: strcpy' strcat'](http://en.cppreference.com/w/cpp/string/byte/strcat)を参照してください。 –