目录
string-构造
- string(); //创建一个空的字符串 例如: string str;
- string(const char* s); //使用字符串s初始化
- string(const string& str); //使用一个string对象初始化另一个string对象
- string(int n, char c); //使用n个字符c初始化
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str001;
const char* ch001 = "abc";
string str002(ch001);
cout << str002 << endl;
string str003(str002);
cout << str003 << endl;
string str004(3, 's');
cout << str004 << endl;
return 0;
}
string-赋值
主要用前三种 operator =
- string& operator=(const char* s); //char*类型字符串 赋值给当前的字符串
- string& operator=(const string &s); //把字符串s赋给当前的字符串
- string& operator=(char c); //字符赋值给当前的字符串
- string& assign(const char *s); //把字符串s赋给当前的字符串
- string& assign(const char *s, int n); //把字符串s的前n个字符赋给当前的字符串
- string& assign(const string &s); //把字符串s赋给当前字符串
- string& assign(int n, char c); //用n个字符c赋给当前字符串
#include <iostream>
#include <string>
using namespace std;
int main()
{
//string& operator=(const char* s); //char*类型字符串 赋值给当前的字符串
string str1;
str1 = "hello world";
cout << "str1 = " << str1 << endl;
//string& operator=(const string &s); //把字符串s赋给当前的字符串
string str2;
str2 = str1;
cout << "str2 = " << str2 << endl;
//string& operator=(char c); //字符赋值给当前的字符串
string str3;
str3 = 'a';
cout << "str3 = " << str3 << endl;
//string& assign(const char *s); //把字符串s赋给当前的字符串
string str4;
str4.assign("hello cpp");
cout << "str4 = " << str4 << endl;
//string& assign(const char *s, int n); //把字符串s的前n个字符赋给当前的字符串
string str5;
str5.assign("abcdefg", 4);
cout << "str5 = " << str5 << endl;
//string& assign(const string &s); //把字符串s赋给当前字符串
string str6;
str6.assign(str5);
cout << "str6 = " << str6 << endl;
//string& assign(int n, char c); //用n个字符c赋给当前字符串
string str7;
str7.assign(5, 'p');
cout << "str7 = " << str7 << endl;
return 0;
}
string-拼接
- string& operator+=(const char* str); //重载+=操作符
- string& operator+=(const char c); //重载+=操作符
- string& operator+=(const string& str); //重载+=操作符
- string& append(const char *s); //把字符串s连接到当前字符串结尾
- string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾
- string& append(const string &s); //同operator+=(const string& str)
- string& append(const string &s, int pos, int n); //字符串s中从pos开始的n个字符连接到字符串结尾
#include <iostream>
#include <string>
using namespace std;
int main()
{
//string& operator+=(const char* str); //重载+=操作符
string str1 = "abc";
str1 += "def";
cout << str1 << endl;
//string& operator+=(const char c); //重载+=操作符
str1 += 'g';
cout << str1 << endl;
//string& operator+=(const string& str); //重载+=操作符
string str2 = "hij";
str1 += str2;
cout << str1 << endl;
//string& append(const char *s); //把字符串s连接到当前字符串结尾
str1.append("klmn");
cout << str1 << endl;
//string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾
str1.append("opqrs", 3);
cout << str1 << endl;
//string& append(const string &s); //同operator+=(const string& str)
string str3("rst");
str1.append(str3);
cout << str1 << endl;
//string& append(const string &s, int pos, int n); //字符串s中从pos开始的n个字符连接到
//字符串结尾
string str4("aaaauvwxyzaaaa");
str1.append(str4, 4, 6);
cout << str1 << endl;
return 0;
}
string-字符串查找与替换
//rfind是从右向左查找,find是从左往右查找;
- int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找
- int find(const char* s, int pos = 0) const; //查找s第一次出现位置,从pos开始查找
- int find(const char* s, int pos, int n) const; //从pos位置查找s的前n个字符第一次位置
- int find(const char c, int pos = 0) const; //查找字符c第一次出现位置
- int rfind(const string& str, int pos = npos) const; //查找str最后一次位置,从pos开始查找
- int rfind(const char* s, int pos = npos) const; //查找s最后一次出现位置,从pos开始查找
- int rfind(const char* s, int pos, int n) const; //从pos查找s的前n个字符最后一次位置
- int rfind(const char c, int pos = 0) const; //查找字符c最后一次出现位置
- string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str
- string& replace(int pos, int n,const char* s); //替换从pos开始的n个字符为字符串s
#include <iostream>
#include <string>
using namespace std;
int main()
{
//int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找(默认从0开始)
string str1("abcdefghjef");
int position = str1.find("ef");//(未找到返回-1)
if (position == -1)
{
cout << "未找到字符串" << endl;
}
else
{
cout <<"find结果为: "<< position << endl;
}
//int find(const char* s, int pos = 0) const; //查找s第一次出现位置,从pos开始查找
//int find(const char* s, int pos, int n) const; //从pos位置查找s的前n个字符第一次位置
//int find(const char c, int pos = 0) const; //查找字符c第一次出现位置
//int rfind(const string& str, int pos = npos) const; //查找str最后一次位置,从pos开始查找
//int rfind(const char* s, int pos = npos) const; //查找s最后一次出现位置,从pos开始查找
//int rfind(const char* s, int pos, int n) const; //从pos查找s的前n个字符最后一次位置
//int rfind(const char c, int pos = npos) const; //查找字符c最后一次出现位置
position = str1.rfind("ef");
cout << "rfind结果为: " << position << endl;
//string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str
//string& replace(int pos, int n, const char* s); //替换从pos开始的n个字符为字符串s
//从1号位置开始的三个字符替换为“123456”(很神奇就是了)
str1.replace(1, 3, "123456");
cout << str1 << endl;
return 0;
}
//rfind是从右向左查找,find是从左往右查找;
string-字符串比较
- 字符串比较是按字符的ASCII码进行对比
- = 返回 0
- > 返回 1
- < 返回 - 1
- int compare(const string &s) const; //与字符串s比较
- int compare(const char *s) const; //与字符串s比较
#include <iostream>
#include <string>
using namespace std;
int main()
{
// 字符串比较是按字符的ASCII码进行对比
// = 返回 0
// > 返回 1
// < 返回 - 1
// int compare(const string &s) const; //与字符串s比较
// int compare(const char *s) const; //与字符串s比较
int compare = 0;
string str0 = "abcde";
string str1 = "abcde";
cout << str0.compare(str1) << endl;
string str2 = "abcdg";
cout << str0.compare(str2) << endl;
char ch1[] = "abcdd";
cout << str0.compare(ch1) << endl;
return 0;
}
string-字符存取
- char& operator[](int n); //通过[]方式取字符
- char& at(int n); //通过at方法获取字符
#include <iostream>
#include <string>
using namespace std;
int main()
{
//string中单个字符存取方式有两种
//char& operator[](int n); //通过[]方式取字符
//char& at(int n); //通过at方法获取字符
string str1 = "abcde";
str1[1] = 'a';
for (int i = 0; i < str1.size(); i++)
{
cout << str1[i];
}
cout << endl;
str1.at(2) = 'a';
for (int i = 0; i < str1.size(); i++)
{
cout << str1.at(i);
}
cout << endl;
return 0;
}
string插入和删除
- string& insert(int pos, const char* s); //插入字符串
- string& insert(int pos, const string& str); //插入字符串
- string& insert(int pos, int n, char c); //在指定位置插入n个字符c
- string& erase(int pos, int n = npos); //删除从Pos开始的n个字符
#include <iostream>
#include <string>
using namespace std;
int main()
{
//对string字符串进行插入和删除字符操作
//string& insert(int pos, const char* s); //插入字符串
//string& insert(int pos, const string& str); //插入字符串
//string& insert(int pos, int n, char c); //在指定位置插入n个字符c
//string& erase(int pos, int n = npos); //删除从Pos开始的n个字符
string str1 = "abcdef";
str1.insert(1, "emo");
cout << str1 << endl; //aemobcde
str1.insert(4, 3, '1');
cout << str1 << endl; //aemo111bcde
str1.erase(1, 6);
cout << str1 << endl; //abcde
return 0;
}
string-子串
- string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字
#include <iostream>
#include <string>
using namespace std;
int main()
{
//string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字
string str1 = "abcdef";
string substr = str1.substr(1, 3);
cout << substr << endl;//bcd
str1 = "abcdefghij@666.com";
int pos = str1.find('@');
cout << str1.substr(0, pos);
return 0;
}
1953

被折叠的 条评论
为什么被折叠?



