cha a[]={'a','b','c'};
如果直接输出a的全部会出现俩次即 abc abc这种效果
ASCII码表重要的几个
A---65
a---97
0---48
字符串数组的几种方式
字符串就是字符数组加上结束符’\0’
char a[]={'a','b','c'};表示字符串数组
char a[]={'a','b','c','\0'}表示字符串
char a="c++";自动添加\0的一种字符串数组
字符串数组的几种输入方式
cin>>a;只有字符串数组可以直接用数组名而不用加[]
scanf("%s",a);数组本身包含地址故不需要加取地址符号&
这俩种输入方式都会遇到空格,回车暂停输入
如输入 abc adf只输出abc
cin>>a+1;表示这玩意从第a+1项开始输入
scanf("%s",a+1);这俩玩意同理
cout<<a+1<<endl;表示从a+1项开始输出printf也是同理
puts(a) 等价于 printf("%s\n",a);
可以读入空格字符串的几种写法
char a[100];
fgets(a,数组长度,stdin);等价于 scanf
string s;
getline(cin,s);
char s;
cin.getline(s,100);s表示字符串数组名,100表示这行能读入的最大数值,等价于 cin
#include <string.h>或者<cstring>
这几个函数是针对 char a[]这种的
strlen(str)求字符串的长度,str是字符串名字 a < b 返回-1,a == b 返回0,a > b返回1,不包含\0
strcmp(a,b)比较俩字符串的大小(按字典序)
strcpy(a,b)将字符串b复制给从a开始的字符数组。
a,b可以是字符串数组名字也可以直接是字符串加上 ‘’ 就行
如果是cin>>p+1;
就要strlen(p+1)
要不然返回0
字典序按照字典里出现的位次比较
如
abc和abde
先a和a比 相等跳过 然后b和b比 然后 c和d比因为d更大故abde更大
10和2在字典序中2更大
scanf(“%d”,s);
scanf(“\n%s”,c);//因为scanf不会过滤回车要自己过滤的
```