C++中关于String类的那些事
1.构造与赋值
string s4(“12345”, 1, 3); | ()内可空,可只有“”,1,3表示取“”中的相应区间 |
s2.assign(“abcde”, 2, 3); | 其实可以直接等号赋值,也可用assign函数 |
2.函数
str.size()或str.length() | 获取字符串长度 |
str.empty() | 判断字符串是否为空 |
==,!=,>,< | 比较字符串,从左起,前面同则转为长度比较 |
s1.compare(1, 2, s2, 0, 3) | 同上 |
s1.find(“Source”, 3) | 从第三个位置开始找,返回找到的最左侧位置,注意string::npos没有位置 |
s1.replace(1, 3, “123456”, 2, 4) | 替换,位置1开始向后长度3个替换为2开始向后长度4 |
s1.insert(3, 5, ‘X’) | 插入 |
s1.erase(1, 3) | 删除 |
s1. substr(0,5) | 子串 |
strcpy(s1,s2) | 复制 |
strlen(s1) | 长度 |
strcat(s1,s2) | 连接(针对char数组) |
strchr(s1,char) | s1中char第一次出现的位置 |
strstr(s1,s2) | s1中s2第一次出现的位置(重复开始到最后,如果取*则为第一个重复元素),s1和s2为char数组 |
strcmp(s1,s2) | 比较 |
to_string(int) | 转字符串 |
3.find函数——等同char数组的strstr
string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数)
string::size_type position;
//find 函数 返回jk 在s 中的下标位置
position = s.find("jk");
if (position != s.npos) /