如何在C++中引用字符串的有限字符
How to cout limited characters of a string in C++?
我正在为学生百分比生成器构建一个程序。在程序中,我想打印输入的学生姓名,直到特定字符,例如 5。我正在使用数组字符串。我搜索了很多,但找不到问题的正确答案。
我尝试仅使用数组。[我是初学者]
#include<iostream>
using namespace std;
int main()
{
cout<<"Enter your name:";
char name[20];
cin>>name; //want to show only first 5 name letters
cout<<"Your name is "<<name;
return 0;
}
我希望它收集用户输入的数据并打印最多 5 个字符的输入数据。有什么办法吗?
是的,您可以使用字符串数据类型提供substr
方法。
#include<iostream>
using namespace std;
int main()
{
string name;
cout << "Enter your name:";
cin >> name;
cout << "Your name is " << name.substr(0, 5);
return 0;
}
很简单:
std::cout.write(name, std::min(5, strlen(name));
或者,如果您使用 std::string(建议用于输入读取以避免缓冲区溢出):
std::cout.write(name.c_str(), std::min(5, name.length()); // or .data()
如果您不想存储整个名称,而只想存储 5 个字符,
#include <iostream>
#include <iomanip>
#include <limits>
using namespace std;
int main()
{
char name[6];
for(int i = 0; i < 3; i++) {
// Only read first 5 characters
cin >> setw(sizeof name) >> name;
// ignore rest of input buffer
cin.ignore(numeric_limits<streamsize>::max(),'n');
cout << name << endl;
}
return 0;
}
相关文章:
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 将 NULL 与 C 的字符* 字符串一起使用
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法将常量字符字符串传递给模板类
- 如何组合一个宽字符字符串,中间插入一些空字符
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 从给定索引返回子字符字符串的函数
- 字符 [](c 字符串)的初始化标准
- 如何将字符字符串用作数学运算符
- 将 Unicode 字符/字符串写入文件
- C++,字符* 字符串修改
- 如何有效地用不同的整数元素替换字符字符串的元素
- C++:如果我们在字符串中添加一些整数,为什么它会从开头删除该数量的字符?(字符串 + 整数)
- strcpy正在复制sth字符i字符串.如何解决此错误
- 在C++中将双精度转换为字符*/字符串
- C 中的宽字符字符串
- 如何提取C 中的字符/字符串之间的字符串
- 无法将字符/字符串转换为int
- 带有指针的反转字符字符串
- 反转字符串中的 n 个字符(字符串中没有空格),而不使用 c++ 中的内置函数