一、 标准库string类型
1.包含的头文件 #include<string>
2.string对象的定义和初始化
1)string s1; //默认构造函数,s1为空串
2)string s2(s1);//将s2初始化为s1的一个副本,调用string的复制构造函数
3)string s3("value");//将s3初始化为一个字符串字面值副本,复制构造函数
4)string s4(n,'c');//将s4初始化为字符‘c'的n个副本
3.string对象的读取
cin>>s;输入“空格空格hello空格world!空格空格".cout<<s时,只打印出hello
从标准输入读取string时,忽略开头所有空白字符(空格、换行符、制表符),读取字符直到再次遇到空白符读取终止
4.string对象的操作
s.empty();
s.size();//返回string::size_type类型,建议不要把返回值赋给int
s[n];//第n个字符
s1+s2;s1和s2连接,但是当两个字符串字面值连接时,是错误的,例如string s=”abc“+"def";//err
s1=s2;
s1==s2 //两个对象相等,是指它们的长度相同且含有的字符相同
!=,<,>,<=,>=
string s1("abc");
string s2("abc\n");
cout<<s1.size()<<endl;//3
cout<<s2.size()<<endl;//4
5.string下标操作
1)读取字符
string str("abcdef");
for(string::size_type index=0;index!=str.size();++index)
cout<<str[index]<<endl;
2)下标操作作左值
string str("abcdef"); for(string::size_type index=0;index!=str.size();++index) <span style="white-space:pre"> </span>str[index]='*';//将字符串"abcdef"全部替换成'*'
#include <iostream> #include <cstdio> #include <string> using namespace std; int main() { string s = "abc"; cout << s << endl; cin >> s; cout << s << endl; string line; while (getline(cin, line)) { if (line.empty()) break; cout << line << endl; } string::size_type len = s.size(); cout << len << endl; s[0] = toupper(s[0]); cout << s << endl; string s1; cout << s1[0] << endl; /* string str = "hello" + "world"; */ //error: two string literals addition is invalid return 0; }
未完待续。。。