#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;
}
这就是结果:
3 + 4 = 11怎么样?!
答案 0 :(得分:3)
首先,name.append(*plastname)
真正将lastname
添加到name
,使name
成为长度为7的字符串(使用您的示例输入)。
然后你打印name.length() + lastname.length()
等于7 + 4
(记住你之前的追加!),导致11
的结果。
或许附加name
和lastname
,您应该单独打印它们吗?像
cout << "Your full name is " << name << ' ' << lastname << ".\n";
答案 1 :(得分:1)
您已将lastname
附加到name
,然后添加它们,这会给您带来比预期更大的价值
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
答案 2 :(得分:1)
你只需打印name.length()的name.length()+ lastname.lenght(),因为你已将姓氏附加到名称。