标准库类型string

时间:2021-08-29 22:38:02
using声明命名空间。注意的是头文件中不应该包含using声明,因为在引用头文件时,会将头文件中的内容拷贝到文件中来,如果头文件中包含了using声明,那么可能每一个头文件中都会包含using声明,可能会造成名字的冲突。 读入一整行和读入一个词主要的差别可以用getline()函数来实现。对于string类的输入函数,它会自动忽略开头的空白(空格、制表符、换行等等),从第一个真正的字符开始直到下一个空白。而对于getline()函数,它会保存字符串中的空白符,它读入数据,直到遇到换行符位置。
#include <string>
#include <iostream>

void main()
{
using std::string;
using std::cin;
using std::cout;
using std::endl;

//获取一行字符串,并且只显示超过指定长度的行
string line;
//while (getline(cin, line))
//{
//if (line.size() > 2)
//{
//cout << line << endl;
//}
//}

////每次读入一个词
//string str;
//while (cin >> str)
//{
//cout << str << endl;
//}


//读入多个字符串然后连接成大字符串,并用空格分开
string str;
while (getline(cin,str))
{
line += str + " ";
cout << line << endl;
}

}

读入一个包含标点符号的字符串,将标点符号去除后输出字符串的剩余部分
#include <string>
#include <iostream>

void main()
{
using std::string;
using std::cin;
using std::cout;
using std::endl;

//读入一个包含标点符号的字符串,将标点符号去除后输出字符串的剩余部分
//1、方法一
string str2 = "Hello,Word!!!";
string result;
for (auto &c : str2)
{
if (!ispunct(c))
result += c;
}
cout << result << endl;

//2、方法二
string str3("Hello,Word!!!#@jdc");
int num = str3.size();
for (int i = 0; i<num; i++)
{
if (!ispunct(str3[i]))
cout << str3[i];
}

}