字符数组定义,初始化,元素的引用
字符数组定义
一维字符数组:char 数组名 [整型常量表达式]
二维字符数组:char 数组名[整型常量表达式][整型常量表达式]
一维字符数组初始化
char c[4]={'a','b'}=c[0]='a' c[1]='b' c[2]='\0' c[3]='\0'
char c[5]= {'a','b','c','d','e'}
char c[5]= {"abcd"}="abcd'; ="abcd\0"
字符数组元素赋值
1.char[5] c[0]='a' c[1]='b' c[2]='c'
2.for{i=0;i<5;i++} c[i]=getchar();
3.scanf("%s",c);
求字符串长度:此处应该注意\0在哪里 字符串的结束以\0为结束标志
字符串及其处理函数
字符串专用头文件 #include<string.h>
字符串输入函数gets()
功能:从键盘输出字符,以回车结束;
用法:gets(数组名)
gets(s)=scanf("%s",s)
字符串输出函数puts 自动换行
eg:有两个数组a,b以下正确的输入为(B)
A.gets(a,b); //gets(数组名)数字,字母,下划线构成
B.scanf("%s%s",a,b);
C.scanf("%s%s",&a&b);
D.gets("a");gets("b");
字符串连接函数(strcat)
strcat(字符数组名1,字符数组名2)
功能:先寻找字符串1的结束标志:’0‘然后字符串2从'\0'处连接
要求字符数组1长度够,不然放不下字符数组2
字符串拷贝函数(strcpy)
注意从那一位开始 :s+2=s[2]
字符串长度(strlen)
strlen:测字符串长度函数 strlen(字符数组名或字符串)
功能:测字符数组或字符串长度但是不包含’\0'
注意:从那一位开始
eg:char s1[30] = "ABD\012ERT"; printf("%d",strlen(s1));--7
char s1[30] = "ABD\012ERT"; printf("%d",sizeof(s1));--30
char s1[30] = "ABD\09ERT"; printf("%d",strlen(s1));--9
牛刀小试
"abc\\\t\nqw" 8位
"\\ta\12\123\1234\012" 8位
"abc\192\012r\092a"8位
“\xab\012\xA1\t" 4位
字符串比较函数(strcmp(字符串1,或字符数组名1,字符数组名2或字符串2))
例如:"ABC"和”abc"比大小
ABC 和abc 比ASCII
串1=串2 ,结果为0
串1>串2 ,结果为正数
串1<串2, 结果为负数
牛刀小试 strcmp("sDDs","ADDS") 正
strcmp("aSD","sYY") 负
strcmp("The","That") 正
strcmp("The ","The") 正
strcmp("Tqwe","Tqwe") 0
字符串数组
字符串数组可以理解为字符型的二维数组
char c[3][6]={"abcde","qwe",good};
c0 a b c d e \10
c1 q w e \0 \0 \0
c2 g o o d \0 \0