zoukankan      html  css  js  c++  java
  • 通过指针引用字符串

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

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

    务实,说实话!
  • 相关阅读:
    推荐vue脚手架工具 vue-cli
    React仿大众点评外卖app
    推荐一个react脚手架工具
    eclipse 中配置php的 XDebug调试
    再谈extjs4.1中gridpanel动态表头动态列
    控制extsj4.1 gridpanel表格行或者单元格的编辑
    windows8.1 app所有默认样式
    windows8.1 app样式定义使用
    windows8.1 app入门开发学习
    Silverlight Tools 语言不匹配问题
  • 原文地址:https://www.cnblogs.com/xtuxiongda/p/8260965.html
Copyright © 2011-2022 走看看