《PPT8-10 通过指针引用字符串.pdf》由会员分享,可在线阅读,更多相关《PPT8-10 通过指针引用字符串.pdf(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、通过指针引用字符串 字符串的引用方式 (1)用字符数组存放字符串 char string = I am a student.; printf(%sn,string); Ia mastu d e nt. 0 string 字符串的引用方式 (2)用指针变量指向一个字 符串常量 char *string = I am a student.; printf(%sn,string); Ia mastu d e nt. 0 string 字符串的引用方式 (2)用指针变量指向一个字 符串常量 char *string; string = I am a student.; printf(%sn,strin
2、g); Ia mastu d e nt. 0 string 字符串指针作为函数参数 将一个字符串从一个函数传递 到另一个函数,不但可以用字符数 组名作为参数传参,还可以用字符 指针变量作为参数传参。此时形参 与实参共用一片存储空间,在被调 函数中改变字符串的内容,主调函 数中的字符串同时改变。 字符串指针作为函数参数 实例8.8求出I am ZhaoYan. What is your name?字符串的长度。 字符串指针作为函数参数 解题思路:定义一个函数 str_len用来实现求字符串长度 的功能,在主调函数中调用此 函数,函数的形参和实参可以 分别用字符数组名或字符指针 变量。 字符串指针
3、作为函数参数 #include int str_len(char *str) int len; for(len=0;strlen;len+); return len; int main(int argc, char *argv) char str = I am ZhaoYan. What is your name?; int len = str_len(str); printf(%s的长度是:%dn,str,len); return 0; I am ZhaoYan. What is your name?0str strstr32strlen 使用字符指针变量和字符数组的比较 字符数组由若干个元
4、素组成, 每个元素中放一个字符,而字 符指针变量中存放的是地址 (字符串第1个字符的地址), 决不是将字符串放到字符指针 变量中。 使用字符指针变量和字符数组的比较 赋值方式不同。可以对字符 指针变量赋值,但不能对数组 名赋值。 使用字符指针变量和字符数组的比较 char *str1; str1 = I am student!; char str214; str20 = I; char str314; str3 = I love China!; 使用字符指针变量和字符数组的比较 初始化方式不同。数组可以 在定义时进行整体初始化,但 是不允许整体赋值;而字符指 针变量既可以使用字符型常量 初始化
5、,也可以用字符型常量 进行赋值。 使用字符指针变量和字符数组的比较 char *a=”I love China!”; 等价于 char *a; a=”I love China!”; char str14= ”I love China!”; 不等价于 char str14; str=”I love China!”; 使用字符指针变量和字符数组的比较 运算方式不同。指针变量的 值允许改变,如果定义了指针 变量s,则s可以进行+,-运 算。 使用字符指针变量和字符数组的比较 char *string=I am a student.; string=string+7; printf(%sn,string); I am a student.0 string string+7 使用字符指针变量和字符数组的比较 指针变量string的值可以 改变,输出字符串时从string 当前所指向的字符开始输出直 到遇到0结束。而字符数组 名是地址常量,不允许进行 +,-等运算。 使用字符指针变量和字符数组的比较 char string=I am a student.; string=string+7; printf(%sn,string); I am a student.0string 解决问题 同学们,请大家一起来动手试试吧!