一、 初始化
string s1="i love you"; string s2(s1); //把s2初始化为s1的一个副本,注意不能写成string s2; s2(s1); string s3("value"); //将s3初始化一个字符串面值副本 string s4(6,‘s‘); //将s4初始化为字符‘s‘的10个副本 /*注意字符串面值与标准库string不是同一个类型*/ cout<<s1<<endl; cout<<s2<<endl; cout<<s3<<endl; cout<<s4<<endl;
结果
二、输入
string s6; getline(cin,s6);//输入带有空格的字符串,测试“ hello world ” cout<<s6<<endl; cout<<"------------------------------"<<endl; string s5; cin>>s5;//输入不带空格的字符串 “ hello world ”测试,发现只读取有效字符到遇到空格结束 cout<<s5<<endl; //故意把s5和s6倒过来,如果先用cin输入s5,再用getline(cin,s6)会有问题。
结果
三、访问字符
cout<<s1.at(13)<<endl;//at函数提供范围检查,当越界时会抛出out_of_range异常, cout<<s1[13]<<endl;//下标运算符[]不提供检查访问。
四、特性描述
1.判断是否为空
s1.empty()
2.长度
string s1="12345678"; cout<<s1.length()<<endl;//.length()和.size()没区别,用哪个都行 cout<<s1.size()<<endl;//size()代表它是个容器,length()体现它是字符串
3.重新定义它的长度(多去少补)
string s1="12345678"; cout<<s1<<endl; cout<<s1.size()<<endl;//.length()和.size()没区别,用哪个都行 s1.resize(4);//多去 cout<<s1<<endl; cout<<s1.size()<<endl; s1.resize(6,‘x‘);//少补,不写第二个参数也可以 cout<<s1<<endl; cout<<s1.size()<<endl;
时间: 2024-10-14 20:57:00