【发布时间】:2015-03-01 12:30:52
【问题描述】:
我正在尝试编写一个简单的程序,该程序采用用户输入的全名,例如“Peter Mills”,并根据名字的第一个字母和姓氏的前 4 位生成用户名?
所以输出应该是“pmill”
我到底是怎么做到的。我对 Qt 还是很陌生,请有人为我解释一下。这就是我现阶段所拥有的
#include <QCoreApplication>
#include <iostream>
#include <QString>
#include<QStringList>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream cin(stdin);
QTextStream cout(stdout);
QString fullName;
cout << "Enter Your Full Name: " << endl;
cin >> fullName;
QStringList username = fullName.split(" ");
username[0]=username[0][1];
QString usernameJoin = username.join("");
cout << "Full name is : " << fullName << endl;
cout << "Username is : " << usernameJoin << endl;
return a.exec();
}
【问题讨论】:
-
QString 结果 = 用户名[0].left(1)+用户名[1].left(4);。假设名字和姓氏中没有空格,并且都足够长(进行错误检查)。
-
我不需要对此作业进行错误检查。如果我运行这个,我只会得到名字的第二个字母?
-
嗯,cin 在单词边界处停止,所以您实际上只阅读了名字。