char储存
- 末尾
char a[3] = "asd";
字符串的末尾是'\0'
- 常见函数:
| 函 数 | 描述 | 示例 |
| :------------- | :------------- | :------------- |
| strclen | 接收一个 C 字符串作为实参。返回 C 字符串的长度(不包括 null 终止符)。|len = strlen(name); |
| strcat | 接收两个 C 字符串作为实参。该函数将第二个字符串的内容附加到第一个 C 字符串 (第一个字符串被改变,第二个字符串保持不变)。|strcat(string1, string2);|
| strcpy |接收两个 C 字符串作为实参。该函数将第二个 C 字符串复制到第一个 C 字符串。第 二个 C 字符串保持不变。|strcpy(string1, string2); |
| strcmp | 接收两个 C 字符串实参。如果 string1 和 string2 相同,则该函数返回 0;如果 string2 按字母顺序大于 string1,则返回负数;如果 string2 按字母顺序小于 string1,则返回 一个正数。|if (strcmp(string1, string2)) |
STL标准库中string
- 初始化
string s1(); // si = ""
string s2("Hello"); // s2 = "Hello"
string s3(4, 'K'); // s3 = "KKKK"
string s4("12345", 1, 3); //s4 = "234",即 "12345" 的从下标 1 开始,长度为 3 的子串
- 赋值
string s1("12345"), s2;
s3.assign(s1); // s3 = s1
s2.assign(s1, 1, 2); // s2 = "23",即 s1 的子串(1, 2)
s2.assign(4, 'K'); // s2 = "KKKK"
s2.assign("abcde", 2, 3); // s2 = "cde",即 "abcde" 的子串(2, 3)
- length 和 size 都可以返回长度
- 字符串的拼接
string s1("123"), s2("abc");
s1.append(s2); // s1 = "123abc"
s1.append(s2, 1, 2); // s1 = "123abcbc"
s1.append(3, 'K'); // s1 = "123abcbcKKK"
s1.append("ABCDE", 2, 3); // s1 = "123abcbcKKKCDE",添加 "ABCDE" 的子串(2, 3)
- 字符串的比较
string s1("hello"), s2("hello, world");
int n = s1.compare(s2);
n = s1.compare(1, 2, s2, 0, 3); //比较s1的子串 (1,2) 和s2的子串 (0,3)
n = s1.compare(0, 2, s2); // 比较s1的子串 (0,2) 和 s2
n = s1.compare("Hello");
n = s1.compare(1, 2, "Hello"); //比较 s1 的子串(1,2)和"Hello”
n = s1.compare(1, 2, "Hello", 1, 2); //比较 s1 的子串(1,2)和 "Hello" 的子串(1,2)