在c中,字符串是以数组的形式存在的,
除了明显的元素,在字符串数组的最后一位是'\0'
,等同于0
,
表示字符串结束符,常用于遍历字符串的结束条件如
while((*p)!='\0'){//*p表示数组中的元素
printf("%c",*p);
p++;
}
字符串的初始化
#include <stdio.h>
int main (void)
{
char *s="happy";//这种定义数组的方式元素不能修改,
//字符串和还可以定义为 char s[]=”happy"
//这种定义元素是可以修改的
char s[]="happy";//这种定义元素是可以修改的
s[0] ='n' ;//如果定义为char *s的形式,执行这条语句会崩溃
printf("%c",s[0]);
return 0;
}
将字符写入数组
#include <stdio.h>
int main (void)
{
char string[10];
//scanf("%s",string) ;//用 %s 来给数组初始化,并且scanf会读入连续
//的单词,到空格,tab或者回车为止
scanf ("%7s",string) ;//在s前加数字指定要读入的位数,避免溢出
char *p=string;
while((*p)!='\0'){
printf("%c",*p);
p++;
}
return 0;
}
常见的字符串定义方式
char **a
,表示a是一个指针,指向另一个指针,那个指针指向一个元素
char a[][10]
,表示a是一个数组,数组中每个元素相当与char[10]
,也就是说每个元素
其实是一个指针
常见字符串函数
字符串函数全部定义在头文件<stdlib>
中,