首页 > C++入门教程 > C++ String类型
C++修改字符串
和字符串数组(char *)类似,string 字符串也可以按照下标逐一访问每一个字符,string 字符串的起始下标仍是从 0 开始。
【例 1】
除了能够逐个的去访问字符串中每一个字符外,系统还提供了一些函数方便我们操作 string 类型变量。
erase() 函数有两个参数,第一个参数是要删除的子字符串的起始下标,第二参数是要删除子字符串的长度,如果第二个参数不指名的话,则是直接从第一个参数获取起始下标,然后一直删除至字符串结束。
【例 2】
说的简单一些,待删除字符串最多删除至字符串结尾。当然如果第一个参数直接越界了,那么函数执行会抛出异常的。
insert() 函数同样有两个参数,第一个参数表示插入位置,第二参数表示要插入的字符串,第二个参数既可以是 string 变量,又可以是 C 风格的字符串。
【例 3】
replace() 函数有三个参数,第一个参数表示待替换的子字符串的其实下标,第二个参数表示待替换子字符串的长度,第三个参数表示要替换子字符串的字符串。第三个参数同样可以是 string 类型变量或 C 风格字符串。
【例 4】
也就是说,替换字符串最多到字符串结尾处,这个与 erase() 函数相同。
【例 5】
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
【例 1】
#include <iostream> #include <string> using namespace std; int main() { string s1 ; s1 = "1234567890"; for(int i=0; i<s1.length(); i++) cout<<s1[i]<<" "; cout<<endl; s1[5] = '5'; cout<<s1<<endl; return 0; }在本例中,我们定义了一个 string 类型变量 s1,并给该变量赋值 "1234567890",之后用 for 循环逐一输出每一个字符串中的字符。除了能够访问每一个字符外,修改它们同样也是允许的,例如在程序后面
s1[5] = '5';
语句将第 6 个字符修改为 '5',最后 s1 被修改为了 "1234557890"。除了能够逐个的去访问字符串中每一个字符外,系统还提供了一些函数方便我们操作 string 类型变量。
string erase()函数
erase() 函数可以删除 string 类型变量中的一个子字符串。erase() 函数有两个参数,第一个参数是要删除的子字符串的起始下标,第二参数是要删除子字符串的长度,如果第二个参数不指名的话,则是直接从第一个参数获取起始下标,然后一直删除至字符串结束。
【例 2】
#include <iostream> #include <string> using namespace std; int main() { string s1, s2, s3; s1 = s2 = s3 = "1234567890"; s2.erase(5); s3.erase(5, 3); cout<< s1 <<endl; cout<< s2 <<endl; cout<< s3 <<endl; return 0; }程序最终运行结果:
1234567890
12345
1234590
- 第二个参数的实参值;
- 字符串长度减去第一个参数的实参值。
说的简单一些,待删除字符串最多删除至字符串结尾。当然如果第一个参数直接越界了,那么函数执行会抛出异常的。
string insert()函数
insert() 函数可以在 string 字符串中指定的位置插入另一个字符串。insert() 函数同样有两个参数,第一个参数表示插入位置,第二参数表示要插入的字符串,第二个参数既可以是 string 变量,又可以是 C 风格的字符串。
【例 3】
#include <iostream> #include <string> using namespace std; int main() { string s1, s2, s3; s1 = s2 = "1234567890"; s3 = "aaa"; s1.insert(5, s3); cout<< s1 <<endl; s2.insert(5, "aaa"); cout<< s2 <<endl; return 0; }本例最终运行结果:
12345aaa567890
12345aaa567890
string replace()函数
replace() 函数可以用一个指定的字符串来替换 string 类型变量中的一个子字符串。replace() 函数有三个参数,第一个参数表示待替换的子字符串的其实下标,第二个参数表示待替换子字符串的长度,第三个参数表示要替换子字符串的字符串。第三个参数同样可以是 string 类型变量或 C 风格字符串。
【例 4】
#include <iostream> #include <string> using namespace std; int main() { string s1, s2, s3; s1 = s2 = "1234567890"; s3 = "aaa"; s1.replace(5, 4, s3); cout<< s1 <<endl; s2.replace(5, 4, "aaa"); cout<< s1 <<endl; return 0; }程序运行结果如下:
12345aaa0
12345aaa0
- 第二个参数的实参值;
- 字符串长度减去第一个参数的实参值。
也就是说,替换字符串最多到字符串结尾处,这个与 erase() 函数相同。
string swap()函数
swap() 函数可以用于将两个 string 类型变量的值互换,其使用方式见例 5。【例 5】
#include <iostream> #include <string> using namespace std; int main() { string s1 = "string"; string s2 = "aaaaaa"; s1.swap(s2); cout<< s1 <<endl; cout<< s2 <<endl; return 0; }程序运行结果如下:
aaaaaa
string
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。