字符串与指针
王贤明
内容提要
回顾字符串
回顾指针
指针下的字符串表示
回顾字符串
字符串
C中无字符串类型,有两种方式表达字符串
双引号
字符数组
printf(“haha!hehe!!heihei!!!”);
思考: “a”& ‘a’同不?
static char s[8]={‘h’,’a’,’h’,’a’};//ok
static char s[]={‘h’,’a’,’h’,’a’}; //bad
static char s[]={‘h’,’a’,’h’,’a’,’\0’}; //ok
static char s[]={“haha”};
static char s[]=“haha”;
字符串
注
当采用字符数组定义字符串时,若采用逐个字符的初始化方式
要么指定字符数组的大小(只要容纳的下即可,即字符数组只有2个字符,但可以定义大小为大于2的值)
要么不指定字符数组大小,但显示在初始化字符最后手工添加‘\0’
字符串的存储及长度
字符串存储的过程中,系统会自动在字符串的最后补‘\0’,
该字符不会被计入字符串的长度
系统在字符串处理过程(输出,比较)中遇’\0’结束
若字符数组定义的长度大于真实容纳的字符数,则字符数组后面的所有空位都补’\0’
字符串中若有转义符,真实长度<>视觉长度
转义符视觉长度2,真实长度1
//长度测试1
printf("%d\n",strlen( "Hello, world"));
printf("%d\n",strlen( "Hello\0, world"));
printf("%d\n",strlen( "Hello, world\n"));
字符串的输入输出
快捷的方式是使用%s 格式符
在使用该格式符时,输入输出的对象是字符数组的名字(无需再加& ,为啥?)
注意:若输入的字符串有空格,则要以空格为分隔符,每个分隔部分分别输入
字符串的输入输出
思考:如果需要输入字符串”wa haha”,下述是否可行?
char s[15];
scanf("%s",s);
printf("%s",s);
字符串的输入输出
思考:如果需要输入字符串”wa haha”,下述是否可行?
参考答案:
char s[15],s1[16];;
scanf("%s %s",s,s1);
printf("%s %s",s,s1);
字符串与指针-课件·PPT 来自淘豆网www.taodocs.com转载请标明出处.