string 类型支持长度可变的字符串,满足对于字符串的一般应用
1、对象定义以及初始化
#include<string>
using namespace std;
int main(){
string s1,
string s2(s1);
string s3("value");
string s4(n,'c'); //初始化为字符c的n个副本
} 因为历史原因以及要与c语言兼容,字符串字面值于标准库string不是同一种类型,注意区分
#include<string>
#include<iostream>
using namespace std;
string s1;
int main(){
string s2;
cout<<s1<<" "<<s2<<endl;
} 以上这个例子发现s1和s2都是空字符串
2、string对象的读写
读取并忽略开头的所有空白字符
读取直至再次遇到空白字符
int main(){
string s;
cin>>s;
cout<<s<<endl;
return 0;
} 可以多个同时输入
string s,s1;
cin>>s>>s1;
cout<<s<<s1<<endl;循环输入怎么写:
直接cin或者使用getline
getline操作,这个函数接受两个参数;一个输入流对像和一个string对象。getline函数从输入流的下一行读取,并保存内容到string中,不包括换行符。如果开头遇到换行符则读取一个空的字符串。
string s;
while(cin>>s){
cout<<s<<endl;
}
或者说使用getliney也可以
while(getline(cin,s)){
cout<<s<<endl;
}string对象的操作
1、常用函数
s.empty() s.size() s[n] s1+s2 s1=s2 v1==v2 != < <= > >=
2、注意点 string::size_type:
string::size_type c++库中的配套类型保证足够大且能储存任意长度的string对象的长度,可以看作是unsigned类型,不要把size函数的返回值赋值给一个int类型,size_type所存储的长度是int类型的两倍
3、string关系操作符
字符串比较采用了大小写敏感的字典序比较
string substr="hello"
string phrase="hello world"
string slang="hiya"
substr<phrase slang="">phrase slang>substr
string 对象的赋值:
string s1,s2="hello world";
s1=s2; 赋值操作后,s1包含了一个s2的副本
两个string对象相加可以直接连接,也可以和字符串字面值拼接</phrase>
string s1("hello, ")
string s2("world\n")
string s3=s1+s2; //s3是hello, world
string s3=s1+","+s2+"\n";
这里要注意,进行字符串拼接时,左右两个值至少要有一个是
string s4="world"+"hello" //非法操作
string s5=s1+","+"world" //正确操作 s1+","先返回一个string类型 再去加“world”
string s6="hello"+","+s2; //非法操作4、从string对象获取字符
string s="hello world"
cout<<s[1];
s[2]='*';
5、string对象中字符的处理
isalnum(c) 是字母或者数字,为true isalpha(c) 是字母则返回true ......有很多,需要可以查找

京公网安备 11010502036488号