1. 头文件
#inlcude <string>
2. std::string & char* 区别
- char* 是一个指针
- string是一个类,内部封装了char,是一个char管理容器
3. std::string & C-style 字符串区别
std::string
是C++标准库中的字符串类,提供了许多字符串操作的方法和功能,包括长度计算、拼接、查找、替换等。- C-style 字符串是一种以空字符 ‘\0’ 结尾的字符数组(char array),通过指向该数组的指针进行访问和操作。
4. std::string构造函数
- copy ctor
//default (1)
string();
//copy (2)
string (const string& str);
//substring (3)
string (const string& str, size_t pos, size_t len = npos);
//from c-string (4)
string (const char* s);
//from buffer (5)
string (const char* s, size_t n);
//fill (6)
string (size_t n, char c);
//range (7)
template <class InputIterator> string (InputIterator first, InputIterator last);
//initializer list (8)
string (initializer_list<char> il);
//move (9)
string (string&& str) noexcept;
copy ctor Test
// string constructor
#include <iostream>
#include <string>
int main ()
{
std::string s0 ("Initial string");
// constructors used in the same order as described above:
std::string s1;
std::string s2 (s0);
std::string s3 (s0, 8, 3);
std::string s4 ("A character sequence");
std::string s5 ("Another character sequence", 12);
std::string s6a (10, 'x');
std::string s6b (10, 42); // 42 is the ASCII code for '*'
std::string s7 (s0.begin(), s0.begin()+7);
std::cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3;
std::cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6a: " << s6a;
std::cout << "\ns6b: " << s6b << "\ns7: " << s7 << '\n';
return 0;
}
- assignment ctor
//string (1)
string& operator= (const string& str);
//c-string (2)
string& operator= (const char* s);
//character (3)
string& operator= (char c);
//initializer list (4)
string& operator= (initializer_list<char> il);
//move (5)
string& operator= (string&& str) noexcept;
assignment ctor Test
// string assigning
#include <iostream>
#include <string>
int main ()
{
std::string str1, str2, str3;
str1 = "Test string: "; // c-string
str2 = 'x'; // single character
str3 = str1 + str2; // string
std::cout << str3 << '\n';
return 0;
}
5. string容量操作
Func Name | usage |
---|---|
size() | Return length of string |
length() | Return length of string |
max_size() | Return maximum size of string |
capacity() | Return size of allocated storage |
clear() | Clear string |
empty() | Test if string is empty |
6. string访问操作
Func Name | usage |
---|---|
operator[] | Get character of string |
at | Get character in string |
back | Access last character |
front | Access first character |
6. string常用方法
- size() 或 length(): 返回字符串的长度。
- empty(): 检查字符串是否为空。
- clear(): 清空字符串内容。
- c_str(): 返回一个指向以空字符结尾的字符数组的指针。
- substr(start, length): 返回从指定位置开始的指定长度的子字符串。
- find(substring): 查找子字符串在主字符串中第一次出现的位置。
- replace(start, length, new_string): 用新字符串替换指定位置的子字符串。
- append(string): 在字符串末尾添加新的字符串。
- insert(pos, string): 在指定位置插入新的字符串。
- erase(start, length): 从指定位置开始删除指定长度的字符。
7. C-style字符串常用函数
- strlen(str): 返回字符串的长度。
- strcpy(dest, src): 将一个字符串复制到另一个字符串。
- strcat(dest, src): 将一个字符串追加到另一个字符串的末尾。
- strcmp(str1, str2): 比较两个字符串。
- strchr(str, ch): 在字符串中查找指定字符的第一个匹配项。
- strstr(str, substr): 在字符串中查找子字符串的第一个匹配项。
- strtok(str, delim): 分割字符串为一系列标记,常用于分割单词或子字符串。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。