第八章 指针(二).ppt
文本预览下载声明
贵州大学人民武装学院 姜毅 8.4 指针与字符串 ②用字符指针实现 例 main( ) { char *string=“I love China!”; printf(“%s\n”,string); string+=7; while(*string) { putchar(string[0]); string++; } } 字符指针初始化:把字符串首地址赋给string ? char *string; string=“I love China!”; *string!=0 I l o v e C h i string n ! a \0 string 贵州大学人民武装学院 姜毅 8.4 指针与字符串 字符串指针作函数参数 例 用函数调用实现字符串复制 (1)用字符数组作参数 #includestdio.h void copy_string(char from[],char to[]) { int i=0; while(from[i]!=\0) { to[i]=from[i]; i++; } to[i]=\0; } void main() { char a[]=I am a teacher.; char b[]=You are a student.; printf(string_a=%s\n string_b=%s\n,a,b); copy_string(a,b); printf(\nstring_a=%s\nstring_b=%s\n,a,b); } 贵州大学人民武装学院 姜毅 8.4 指针与字符串 (2)用字符指针变量作参数 #includestdio.h void copy_string(char *from,char *to) { for(;*from!=\0;from++,to++) *to=*from; *to=\0; } void main() { char *a=I am a teacher.; char *b=You are a student.; printf(string_a=%s\nstring_b=%s\n,a,b); copy_string(a,b); printf(\nstring_a=%s\nstring_b=%s\n,a,b); } 贵州大学人民武装学院 姜毅 8.4 指针与字符串 a I a m a t e a c e h \0 r . from a b y u a r a s u t n d e to b o e t . \0 I a a e c e h \0 r . t . \0 m t a 贵州大学人民武装学院 姜毅 8.4 指针与字符串 字符指针变量与字符数组 char *cp; 与 char str[20]; str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址 char str[20]; str=“I love China!”; char *cp; cp=“I love China!”; str是地址常量;cp是地址变量 cp接受键入字符串时,必须先开辟存储空间 √ × 贵州大学人民武装学院 姜毅 8.4 指针与字符串 例 char str[10]; scanf(“%s”,str); (?) 而 char *cp; scanf(“%s”, cp); (?) 改为: char *cp,str[10]; cp=str; scanf(“%s”,cp); (?) 贵州大学人民武装学院 姜毅 8.4 指针与字符串 字符串与数组关系 字符串用一维字符数组存放 字符数组具有一维数组的所有特点 数组名是指向数组首地址的地址常量 数组元素的引用方法可用指针法和下标法 数组名作函数参数是地址传递等 区别 存储格式:字符串结束标志 赋值方式与初始化 输入输出方式:%s %c 贵州大学人民武装学院 姜毅 char str[ ]={“Hello!”}; char str[ ]=“Hello!”; char str[ ]={‘H’,‘e’,‘l
显示全部