参考链接:http://c.biancheng.net/cpp/biancheng/view/3284.html
初始化: string初始化时不像char型那样自动在后面加\0
插入: string.insert(起始位置,string或char)
删除: string.erase(起始位置,删除字符串的长度)
提取子字符串: string.substr(起始位置,提取子字符串的长度)
查找字符串: string.find(string或char,查找到起始位置(默认为0)),返回值是查找到的下标
string类的提取子字符串substr
函数原型:
string substr (size_t pos = 0, size_t len = npos) const;
pos为提取字符串的起始位置下标,npos为提取字符串的长度
用法:
std::string s1 = “first second third”;
std::string s2;
s2 = s1.substr(6, 6)
stoi与atoi
函数原型:
int atoi(const char *str)
int stoi (const string& str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);
可见atoi的参数是const char而stoi的参数是const string,所以如果要将string转化成整数时,atoi函数需要先用c_str将string转化成char型,而stoi则不需要。
c_str
将 string 字符串转换为C风格的字符串,并返回该字符串的 const 指针(const char*)
strdup与strcpy
strdup内部会用malloc分配内存,所以不用实现分配内存
用法:
char *a = strdup(“string”);
strcmp将字符串复制到指定的内存空间,因此需要事先分配好内存,否则会发生段错误
用法:
char a = (char)malloc(sizeof(char*));
strcmp(a,“string”);