通过指针引用字符串
程序员文章站
2022-06-22 11:34:23
(一)一个指针引用字符串的小例子 把字符串a复制到字符串b (二)字符指针做函数参数 实参和形参都可以选择字符数组名和字符指针变量,但存在区别:(1)编译时为字符数组分配若干存储单元,以存放个元素的值,而对字符指针变量,只分配一个存储单元(2)指针变量的值是可以改变的,而数组名代表一个固定的值(数组 ......
(一)一个指针引用字符串的小例子
把字符串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所指向的字符串,就可以改变输入输出格式
上一篇: ThinkPHP5自定义分页样式
下一篇: 日期和时间