题目:编写一个程序,能够询问用户的姓名,并读取用户所输入的内容。请确保用户输入名称的长度大于两个字符。如果用户的确输入了有效名称,就响应了一些信息。请以两种方式明确实现:第一种使用C_stytle字符串,第二种使用string对象。
问题:1.测量字符数组和字符串的实际长度问题?换句话说就是:
可以粗看下面的博客:
c/c++中sizeof()、strlen()、length()、size()详解和区别
1.使用String
#include<iostream>
using namespace std;
int main()
{
string str;
cout << "请输入您的姓名: ";
while (1)
{
cin >> str;
if (sizeof(str) >= 2)
{
cout << "您的姓名为: " << str << endl;;
cout << "您的姓名字符数有:" << str.length()<<endl;
cout << "您的姓名字符数有:" << str.size();
break;
}
else
{
cout << "您的姓名字符数有:" << str.length() << endl;
cout << "您的姓名字符数有:" << str.size();
cout << "您输入姓名字符数少于2个字符,请重新输入!" << endl;
}
}
return 0;
}
运行结果:
2.使用c_stytle
#include<iostream>
using namespace std;
int main()
{
char name[100];
cout << "请输入您的姓名: ";
while (1)
{
cin >> name;
if (strlen(name) >= 2)
{
cout << "您的姓名为: " << name << endl;
cout << "您的姓名可存储最大字符数有:" << sizeof(name)<<endl;
cout << "您的姓名字符数有:" << strlen(name);
break;
}
else
{
cout << "您的姓名可存储最大字符数有:" << sizeof(name) << endl;
cout << "您的姓名字符数有:" << strlen(name);
cout << "您输入姓名字符数少于2个字符,请重新输入!" << endl;
}
}
return 0;
}
运行结果: