首页 > 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笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。