通过指针引用字符串

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

把字符串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所指向的字符串,就可以改变输入输出格式

转载于:https://www.cnblogs.com/xtuxiongda/p/8260965.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值