C语言基础知识回顾 %超适用于计算机二级%
第六章 字符串
6.1 字符串与一维数组
e.g.
char *sp, s[10];
s=”Hello!”; /*不合法,数组名不可重新赋值*/
sp=”Hello!”; /*合法赋值*/
e.g.
char str[]={‘s’,’t’,’r’,’i’,’n’,’g’,’\0’};
char str[10]={“string”};
char str[]={“string”};
char str[]=”string”;
/*均能合法初始化一个字符串*/
e.g.
char str1[10]=”string”,
str2[10];
str2=str1; /*不合法,只能逐个元素赋值*/
6.2 使指针指向一个字符串
e.g.
char *sp=”string”; /*通过赋初值的方式使指针指向一个无名字符串首地址*/
char str[]=”string”,
*sp=str; /*通过赋初值的方式使指针指向str字符串首地址*/
char str[]=”string”,*sp;
sp=str; /*通过赋值运算使指针指向str字符串首地址*/
6.3 #include <string.h>
调用形式 | 返回值 | 执行功能 |
---|---|---|
gets(str) | void | 输入一行字符串 |
puts(str) | void | 输出一行字符串 |
strcpy(s1,s2) | s1 | s2内容复制到s1 |
strcat(s1,s2) | s1 | s2连接到s1后面,并自动覆盖掉’\0’ |
strlen(s) | int (长度) | 计算字符串长度(不包含’\0’) |
strcmp(s1,s2) | 正数(s1>s2)/0(s1=s2)/负数(s1<s2) | 比较s1和s2的大小(从前到后, 依据ASCII码) |
6.4 sizeof
-
sizeof( ) 计算的是数据在内存中存放的长度,单位是字节.
-
用法1: 操作数是数据类型,
e.g.
int L; L=sizeof(int);
计算int型数据所占字节. -
用法2: 操作数是表达式,
e.g.
int a=0; double b=2.0; printf(“%d”,sizeof(a+b));
输出8. -
用法3: 计算数组元素数量,
e.g.
arr[3]={1}; printf(“%d”,sizeof(arr)/sizeof(arr[0]));
输出3(0和’\0’也占内存). -
用法4: 计算字符串长度,
e.g.
int str[]=”string”; printf(“%d”,sizeof(str));
输出7(char占一个字节).