2017-09-08 2 views
3
#include <iostream> 

using std::cout; 
using std::cin; 
using std::string; 

int main(){ 
    cout << "Welcome to the program!"; 
    cout << "\nWhat is your name? "; 
    string name; 
    cin >> name; 
    cout << "Hi, " << name << ". "; 
    cout << "Your name has " << name.length() << " letters!"; 
    cout << "\nWhat is your last name? "; 
    string lastname; 
    string *plastname; 
    cin >> lastname; 
    plastname = &lastname; 
    cout << "Your full name is " << name.append(*plastname) << "."; 
    cout << " Your full name has " << name.length() + lastname.length() << " letters!"; 
    return 0; 
} 

を生成し、これが結果です:プログラムへ添加すると、間違った答え(string0.length()+ string1.length())

  • ようこそ!
  • あなたの名前は何ですか? adk
  • こんにちは、adk。あなたの名前は3文字です!
  • あなたの姓は? adkl
  • あなたのフルネームはadkadklです。あなたのフルネームは11文字です!

どのように3 + 4 = 11 ?!

+3

名前に変数が追加されています(最初に追加しないでください) – DPM

+0

ポインタは 'plastname'とは何ですか?あなたは本当にそれを何のために使っていますか?どのような問題が解決するはずですか? –

+0

@Someprogrammerdudeそれは学習のためかもしれませんが、解決しようとしている問題に違いをもたらすべきではありません。 –

答えて

3

最初にname.append(*plastname)を入力してnameに実際にlastnameを追加して、nameの文字列を入力します(入力例)。

次に、7 + 4(前に追加したことを覚えておいてください)と等しいname.length() + lastname.length()を印刷すると、結果は11になります。

おそらくnamelastnameを追加する場合は、別々に印刷する必要がありますか?同様

cout << "Your full name is " << name << ' ' << lastname << ".\n"; 
1

あなたはnameからlastnameを追加し、それらを追加しました、それはあなたが予想以上に大きな値を与える

cout << "Your full name is " << name.append(*plastname) << ".";//You append here 
cout << " Your full name has " << name.length() + lastname.length() << " letters!";//And then add here 
1

あなただけ(name.lengthを印刷する)(name.lengthのinstaed) + lastname.lenght()はすでに姓を名前に追加しています。

関連する問題