
字符串处理 在C语言中,有字符串常量,但并没有字符串变量。 C语言一般使用字符数组来存储字符串,使用字符 数组和字符指针来处理字符串
字符串处理 在C语言中,有字符串常量,但并没有字符串变量。 C语言一般使用字符数组来存储字符串,使用字符 数组和字符指针来处理字符串

字符串的存储与引用 C语言规定:在内存中存储字符串常量时,需在 其末尾添加空字符0'(即ASC码为0的字符)作为 结束标志。 字符串常量存入内存时,由系统自动添加结束 标志。 例如: H e 0 0
字符串的存储与引用 C语言规定:在内存中存储字符串常量时,需在 其末尾添加空字符'\0'(即ASCII码为0的字符)作为 结束标志。 字符串常量存入内存时,由系统自动添加结束 标志。 例如:

用字符数组存储和引用字符串 在C语言中,一般使用字符数组来存储字符串。 一个一维字符数组只能存储一个字符串; 而一个二维字符数组可以存储多个字符串
用字符数组存储和引用字符串 在C语言中,一般使用字符数组来存储字符串。 一个一维字符数组只能存储一个字符串; 而一个二维字符数组可以存储多个字符串

字符数组的初始化 1.以字符的形式初始化字符数组 例如: char s[10]='G,'o,'o,'d"; 此时,多余的数组元素自动初始化为空字符0
字符数组的初始化 1.以字符的形式初始化字符数组 例如: char s[10]={'G','o','o','d'}; 此时,多余的数组元素自动初始化为空字符'\0

2.以字符串的形式初始化字符数组 例如: char s[20]="Good bye" char t[3][20]={"Hello", "How are you", "Good bye"}
2.以字符串的形式初始化字符数组 例如: char s[20]="Good bye"; char t[3][20]={"Hello", "How are you", "Good bye"};

需要注意以下赋值是错误的: char s[20]; s="Good bye'";*错误*/ 因为数组名$是指针常量,因此不能对$进行赋值
需要注意以下赋值是错误的: char s[20]; s="Good bye"; /*错误*/ 因为数组名s是指针常量,因此不能对s进行赋值

一旦将字符串存入到一个字符数组中,就可以在程 序中通过该字符数组名来引用这个字符串。 例如: char t[20]="Good bye" printf("%sIn",t); 输出数组t中的字符串/
一旦将字符串存入到一个字符数组中,就可以在程 序中通过该字符数组名来引用这个字符串。 例如: char t[20]="Good bye"; printf("%s\n",t); /*输出数组t中的字符串*/

3、初始化时可以不指定字符数组的长度。 char s]={'G','o','o','d'); 数组s有4个元素,不添加\0'。 char t[]="Good" 数组t有5个元素,自动添加0'。 (即只要是以字符串形式出现在程序中,就隐含了 一个空字符0')
3、初始化时可以不指定字符数组的长度。 如 char s[]={'G','o','o','d'}; 数组s有4个元素,不添加'\0'。 char t[]="Good"; 数组t有5个元素,自动添加'\0'。 (即只要是以字符串形式出现在程序中,就隐含了 一个空字符'\0')

那么,以上两个字符数组,在使用上会有什么不同 呢? 下列程序段 char t="Good" printf("%sIn",t); 运行结果为 Good
那么,以上两个字符数组,在使用上会有什么不同 呢? 下列程序段 char t[]="Good"; printf("%s\n",t); 运行结果为 Good

而下列程序段 char s=G','o','o','d'); printf("%sIn",s); 运行结果为 ©"C:\Documents and Settin.-▣× Good?t Press any key to continue
而下列程序段 char s[]={'G','o','o','d'}; printf("%s\n",s); 运行结果为