string

来源:互联网 发布:gta5捏脸数据男欧美 编辑:程序博客网 时间:2024/06/15 08:34

字符串:初始化

    string s;    string s1 = "lixiaojie";    string s2(s1);    string s3 = s1;//等价于s3(s1)    string s4(5, 'c');    string &s5 = s1;    cout << "length="<<s1.length()<<"   size="<<s1.size() << endl;//length=9 size = 9

结果:

解释:=:拷贝初始化(copy initialization),编译器把等号欧策的初始值拷贝到新建的对象中去,如果不适用等号,则执行的是直接初始化(direct initialization)

string 对象上的操作cin>>s;//读取字符串,遇到空格结束cout<<s;string w;while(cin>>w){...}//读取未知数量的string对象,可以用:getline(cin , s);//可以读取一整行字符,包括空格//使用getline读取一整行s.empty();//判断是否为空s.size();//返回string对象中字符的个数s1==s2;//比较,对大小写敏感 类似于> >= < <= !=s1+=s2;//字符串拼接

range for

for(auto c: s){cout<<c};//类似于java里的增强for啊for(auto &c : s){c = 'd'};//通过引用改变s的内容

访问string对象中的单个字符
方法1:使用下标 s[0]~s[s.size()]
方法2:使用迭代器

note:

  1. size()函数的返回值是size_type类型:是一个无符号整型,当n为负数时,size()小于n为true,因为此时n会自动转型为一个特别大的无符号数。因此存在size时,就不要用int了

  2. string对象相加:

s1 = s1+"lixiai";//正确,字面值lixiai会自动转换成string对象        s2 = "ldj"+"d";//错误,两个运算对象都不是string        s3 =  s1+"lixiai"+","//正确        s4 =  "lixiai"+","+s1;//错误

3.字符串字面值并不是标准类型string对象

0 0
原创粉丝点击