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

#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

1
2
3
4
char s1[30]="aaaa",s2[10]="bbbb";
strcat(s1,s2);
strcat(s1,"hello");

strcat(字符数组,字符数组/字符串/指针指向)

将strcat后面的值连接到前方(要求前变量足够长)

strcmp

1
2
char s1[30]="aaaa",s2[10]="bbbb";
cout<<strcmp(s1,s2);

比较两个字符的ASCII码值,它会从左到右依次比较每个字符,直到遇到不同的字符或者到达字符串的末尾。

如果两个字符相等,那么比较过程会继续进行到下一个字符

  • 如果 str1 和 str2 相等,则返回0。
  • 如果 str1 小于 str2(按字典顺序),则返回一个小于0的整数。
  • 如果 str1 大于 str2(按字典顺序),则返回一个大于0的整数。