通过指针引用字符串

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

把字符串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!='';p1++,p2++)  
6         *p2=*p1;
7     *p2='';
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
%s",a,b); 
 9 } 
10 void copy_string(char from[], char to[]){
11     int i=0;
12     while(from[i]!=''){
13         to[i]=from[i]; i++;
14     }
15     to[i]='';
16 }

(三)可变格式输出函数

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

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

务实,说实话!
原文地址:https://www.cnblogs.com/xtuxiongda/p/8260965.html