c风格的字符串
char 字符 = 'a';//单个字符,必须用单引号 char 变量名[] = "字符串值";//字符数组 组成的字符串,用双引号
c++风格的字符串
#include <string> using namespace std; string str = "字符串值";
c++string类各种操作的原形
/* 赋值的函数原型 string& opreator = (const char* s); //char* 类型字符串 赋值给当前的字符串 string& opreator = (const string &s); //把字符串s赋给当前的字符串 string& opreator = (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个字符 赋值给当前的字符串 寻找文本函数原形: 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) //从pos位置开始,查找s的前n个字符首次出现的位置 int find(const char c,int pos) //查找 char c首次出现的位置 从pos开始 倒找文本函数原形: int rfind(const string& s,int pos=npos)const //查找s最后的出现位置 int rfind(const char* s,int pos=npos)const //查找s最后的出现位置 int rfind(const char* s,int pos=npos,int n)const//查找s的前n个字符最后出现位置,从pos开始 int rfind(const char c,int pos) //查找字符c最后的出现位置 子文本替换函数原形 string& replace(int pos,int n,const string& str)//替换从pos开始n个字符 替换为str string& replace(int pos,int n,const char* str) //替换从pos开始n个字符 替换为str string插入和删除 原形 string& insert(int pos,const char* s) //插入字符串 string& insert(int pos,const string& s) //插入字符串 string& insert(int pos,int n,char c) //在指定位置插入n个字符c string& erase(int pos,int n=npos) // 删除从pos开始的n个字符 子串获取 string substr(int pos,int n=npos)const; 返回pos开始的n个字符组成的字符串 子串存取(单个字符) char& operator[] (int n) 重载了[] 可以直接当char数组来用 char& at(int n) //结果与 [] 一样 */
string的初始化与赋值语法
//初始化 string str1; string str2="bbbb"; string str3("撒"); string str4(10, 'a');// 使用10个a来初始化 //赋值操作 string str5 = str2; // string str6; str6 = 'a'; string str7; str7.assign("abcd");// assign赋值方式 认识就行 一般情况可以直接用"="来代替 string str8; str8.assign("abcdefg", 5);// 把字符串的前5个字符 赋值给当前字符串 str8.assign(10, 'w'); //用n个字符 赋值当前的字符串
字符串拼接
string str; str += "abc"; // string& operator+=(const char* str) 重载+=操作符 str += 'a'; // string& operator+=(const char c) 重载+=操作符 str += str6; // string& operator+=(const string& str) 重载+=操作符 str.append("abc"); //(const char *s) // 把字符串连接到当前字符串后面 str.append("abcdefg", 3); //(const char *s,int n) //把字符串s的前n个字符 连接到字符串后面 str.append(str2); //(const string &s) //等同于 operator+=(const string& str) str.append(str8, 2, 3); //(const string &s,int pos,int n)//字符串s中从post开始的n个字符 连接到字符串的结尾
寻找文本例子
int pos=str.find(str6); pos = str.find("被查找的文本", 2); pos = str.find("abcdefg", 0, 2); //从0开始 查找"ab"首次出现的位置 pos = str.find('d', 2); //查找字符'd'首次出现位置 从2开始
倒找文本例子
pos = str.rfind(str2, 5); //从位置5开始查找 pos = str.rfind("被查找的文本", 5); pos = str.rfind("被查找的文本", 0, 2); //查找文本 前两个字符 最后出现的位置, 从0开始 pos = str.rfind('c',0); //查找字符c最后的出现位置,从0开始
替换例子
string newstr; newstr = str.replace(2, 1, str3); // 从2开始 替换1个字符 替换为 str3 newstr = str.replace(2, 1, "替换为"); //从2开始 替换1个字符 替换为 "替换为"
字符串比较
int 结果; //字符串比较是按照ASCII码比较,=返回0 >返回1 <返回-1 结果=str.compare(str2); //str 与 str2比较 结果 = str.compare("要比较的字符串"); //str 与 常量字符串比较
字符存取 (单个字符)
string str9 = "abcdefg"; char s1=str9[1]; //原型:char& operator[] (int n) 重载了[] 可以直接当char数组来用 char s2 = str9.at(5); //结果与 [] 一样
取文本中间
string str10 = "abcdefg"; str10.substr(2, 3); //从2开始 返回3个字符的string字符串
插入和删除
str.insert(3, "新插入的字符串"); //在3的位置插入字符串 str.insert(3, str4); //在3的位置插入字符串 str.insert(3, 4, 'c'); //在3的位置插入4个c str.erase(3, 5); //从3的位置开始,删除5个字符