通过指针引用字符串

2018-01-11 08:10:51来源:cnblogs.com作者:xtu熊大人点击

分享

(一)一个指针引用字符串的小例子

把字符串a复制到字符串b

1 #include<stdio.h>2 int main(){3     char a[]="i am a boy",b[20],* p1, *p2; 4     p1=a; p2=b;       //p1,p2分别指向a,b数组的第一个元素 5     for(;*p1!='/0';p1++,p2++)  6         *p2=*p1;7     *p2='/0';8     printf("%s",b);9 }

(二)字符指针做函数参数

实参和形参都可以选择字符数组名和字符指针变量,但存在区别:
(1)编译时为字符数组分配若干存储单元,以存放个元素的值,而对字符指针变量,只分配一个存储单元
(2)指针变量的值是可以改变的,而数组名代表一个固定的值(数组首元素的地址),不能改变

char *a="i am a student"a=a+7;   //合法的char str[]={"i am a student"};str=str+7  //非法的

(3)字符数组中各元素的值是可以改变的,但字符指针变量指向的字符串常量中的内容是不能改变的

char a[]="house";char *b="house";a[2]='r';    //合法  *(b+2)='r';  //非法 

接着,引入一个用字符数组名作为函数参数的例子,实现字符串的复制

 1 #include<stdio.h> 2 int main(){ 3     void copy_string(char from[] ,char to[]); 4     char a[]="i am a teacher"; 5     char b[]="you are a student"; 6      7     copy_string(a,b);  //把a复制到b 8     printf("%s/n%s",a,b);  9 } 10 void copy_string(char from[], char to[]){11     int i=0;12     while(from[i]!='/0'){13         to[i]=from[i]; i++;14     }15     to[i]='/0';16 }

(三)可变格式输出函数

char *format;format="a=%d,b=%d/n";printf(format,a,b); 

可变格式输出函数,只需要改变format所指向的字符串,就可以改变输入输出格式

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台