#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;
}
这是结果:
- 欢迎来到这个项目!
- 你叫什么名字?广告
- 你好,adk。你的名字有 3 个字母!
- 你姓什么?适应
- 你的全名是 adkadkl。你的全名有 11 个字母!
3 + 4 = 11 怎么算?!
最佳答案
首先你执行 name.append(*plastname)
,它实际上将 lastname
附加到 name
中,使 name
长度为 7 的字符串(使用您的示例输入)。
然后你打印 name.length() + lastname.length()
等于 7 + 4
(记住你之前做的追加!),导致11
的结果。
也许附加 name
和 lastname
,您应该分别打印它们?喜欢
cout << "Your full name is " << name << ' ' << lastname << ".\n";
关于c++ - 两个单词的长度相加产生错误答案(string0.length() + string1.length()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115213/