|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9
| char s = 'a'; char st[50] ="abcd"; //后面无赋值的为'/0'即字符串结束符 //char st[50] = {"a","b","c","d"}; //char st[] ="abcd"; //末尾有/0,长度为5字节 //char st[] = {"a","b","c","d"}; //末尾没有/0,长度为4字节 char *p = "abcd"; //char *p = {"a","b","c","d"};不能使用这种方法定义指针字符 cin>>st; //输入后会覆盖 cout<<st;
|
一个char一个字节,char数组按序储存字符,指针储存字符地址,所以指针都为4字节。
string w
字符串的类
strcpy {#strcpy}
#include <cstring>
|---------------|------------------------------------------------------------------------------|
| 1 2 3
| char s1[30]="aaaa",s2[10]="bbbb"; strcpy(s1,s2); strcpy(s1,"hello");
|
|---------------|-------------------------|
| 1 2 3
| aaaa bbbb hello
|
strcpy(字符数组,字符数组/字符串/指针指向)
将strcpy后面的值传递给前方变量。
strcat {#strcat}
|-----------------|------------------------------------------------------------------------------|
| 1 2 3 4
| char s1[30]="aaaa",s2[10]="bbbb"; strcat(s1,s2); strcat(s1,"hello");
|
strcat(字符数组,字符数组/字符串/指针指向)
将strcat后面的值连接到前方(要求前变量足够长)
strcmp {#strcmp}
|-------------|----------------------------------------------------------------|
| 1 2
| char s1[30]="aaaa",s2[10]="bbbb"; cout<<strcmp(s1,s2);
|
比较两个字符的ASCII码值,它会从左到右依次比较每个字符,直到遇到不同的字符或者到达字符串的末尾。
如果两个字符相等,那么比较过程会继续进行到下一个字符
- 如果 str1 和 str2 相等,则返回0。
- 如果 str1 小于 str2(按字典顺序),则返回一个小于0的整数。
- 如果 str1 大于 str2(按字典顺序),则返回一个大于0的整数。