0
点赞
收藏
分享

微信扫一扫

C++ 2022.2.12-14 using string getline empty size

pipu 2022-02-14 阅读 21
c++

using:

using namespace::name;
//这样声明之后,就可以直接访问命名空间中的名字
#include<iostream>
using std::cin;
int main()
{
    int i;
    cin >> i;   //正确,cin和std::cin含义相同
    cout << i;  //错误,没有对应的using声明,必须用原来完整的名字
    std::cout << i;  //正确,显式地从std中使用cout
    return 0;
}
//头文件中不应含有using声明

string:

//string表示可变长的字符序列,需要包含:
#include <string>
using std::string;

string s1;           //默认初始化,s1是一个空字符串
string s2 = s1;     //s2是s1的副本   等价于string s2(s1);
string s3 = "hiya";  //s3是该字符串字面值的副本  等价于string s3("hiya");
string s4(10,'c');   //s4的内容是cccccccccc

//如果使用等号‘=’初始,实际上执行的是拷贝初始化,编译器把右侧的初始值拷贝到新创建的对象去
//如果不使用等号,则执行的是直接初始化
//当初始值只有一个时,两者都行;如果想上面的s4一样初始化需要的值有多个,则一般使用直接初始化
string s5 = "hiya";  //拷贝初始化
string s6("hiya");   //直接初始化
string s7(10,'c');   //直接初始化

//非要用拷贝初始化处理用多个值初始化的情况也行,但要显式地创建一个临时对象用于拷贝
string s8 = string(10,'c');  //拷贝初始化
//等价于下面两条语句
string temp(10,'c');
string s8 = temp;

string操作:

os<<s           将s写到输出流os中,返回os
is>>s           从is中读取字符串赋值给s,字符串以空白分隔,返回is
getline(is,s)   从is中读取一行赋值给s,返回is
s.empty()       s为空返回true,否则返回false
s.size()        返回s中字符的个数
s[n]            返回s中第n个字符的引用,位置n从0开始计数
s1+s2           返回s1和s2连接后的结果
s1=s2           用s2的副本代替s1原来的字符
s1==s2          如果s1和s2完全一样,则它们相等,区分大小写
<  <=  >  >=    利用字符在字典中的顺序进行比较,区分大小写

读写string对象:

string s;  //s是空字符串
cin>>s;    //遇空格停止
cout<<s<<endl;

string s1,s2;
cin>>s1>>s2;
cout<<s1<<s2<<endl;
//如果输入"  hello world  "
//则输出"helloworld"

int main()
{
    string word;
    while(cin>>word)       //反复读取,直到文件末尾
        cout<<word<<endl;  //每次成功读取后马上输出
    return 0;
}

getline:

//如果想要让字符串保留输入的空格符,应该用getline代替>>
//getline函数的参数是一个输入流和一个string对象
//函数从输入流中读入内容,直到遇到换行符,注意换行符也被读入了,但换行符不会被存入string中
//换行符是被丢弃了
//如果直接输入换行符,则会得到一个空字符串
int main()
{
    string line;
    //每次读入一整行,直至文件末尾
    while(getline(cin,line))
        cout<<line<<endl;
    return 0;
}

string的empty和size操作:

//empty根据string对象是否为空而返回一个布尔值
while(getline(cin,line))
    if(!line.empty())     //如果该字符串不为空
        cout<<line<<endl;

//size函数范围字符串的长度(字符的个数)
string line;
while(getline(cin,line))
    if(line.size()>80)    //只输出字符数超过80的字符串
        cout<<line<<endl;
举报

相关推荐

0 条评论