• 指针05 零基础入门学习C语言45


    第八章:指针05

     

    让编程改变世界

    Change the world by program


     

    字符串与指针

     

    (1) 用字符数组存放一个字符串,然后输出该字符串。

    例题一:定义一个字符数组,对它初始化,然后输出该字符串。 例题一源码分析学习!(点击下载源代码)   [caption id="attachment_157" align="aligncenter" width="300"] 用字符数组存放一个字符串,然后输出该字符串[/caption]  

    (2) 用字符指针指向一个字符串

    例题二:可以不定义字符数组,而定义一个字符指针。用字符指针指向字符串中的字符。 例题二源码分析学习!(点击下载源代码)  

    字符串中字符的存取方法

      对字符串中字符的存取,可以用下标方法,也可以用指针方法! 下标法举例: 将字符串a复制为字符串b [codesyntax lang="c"]
    #include <stdio.h>
    
    void main()
    {
          char a[] = "Fishc.com is a good web site!", b[40];
          int i;
    
          for(i=0; *(a+i) != '�'; i++)
          {
                *(b+i) = *(a+i);
          }
          *(b+i) = '�';
    
          printf("String a is: %sn", a);
          printf("String b is: ");
          for(i=0; b[i] != '�'; i++)
          {
                printf("%c", b[i]);
          }
    
          printf("nn");
    }
    [/codesyntax] 指针方法举例: 将字符串a复制为字符串b [codesyntax lang="c"]
    #include <stdio.h>
    
    void main()
    {
          char a[] = "Fishc.com is a good web site!", b[40], *p1, *p2;
          int i;
    
          p1 = a;
          p2 = b;
    
          for( ; *p1 != '�'; p1++, p2++)
          {
                *p2 = *p1;
          }
          *p2 = '�';
    
          printf("String a is: %sn", a);
          printf("String b is: ");
          for(i=0; b[i] != '�'; i++)
          {
                printf("%c", b[i]);
          }
    
          printf("n");
    }
    [/codesyntax]  

    字符指针作函数参数

     

    例题三:用函数调用实现字符串的复制

    (1)用字符数组作参数 [codesyntax lang="c"]
    #include <stdio.h>
    
    void  main()
    {
          void  copy_string(char from[], char to[]);
    
          char a[] = "I am a teacher.";
          char b[] = "You are a student.";
    
          printf("string a = %snstring b = %sn", a, b);
          printf("copy string a to string b:n ");
    
          copy_string(a, b);
    
          printf("nstring a = %snstring b = %sn", a, b);
    }
    
    void  copy_string(char from[], char to[])
    {
          int i = 0;
    
          while( from[i] != '�' )
          {
                to[i] = from[i];
                i++;
          }
          to[i] = '�';
    }
    [/codesyntax]   (2)形参用字符指针变量 [codesyntax lang="c"]
    #include <stdio.h>
    
    void  main()
    {
          void copy_string( char *from, char *to );
    
          char *a = "I am a teacher.";
          char *b = "You are a student.";
    
          printf("String a = %snString b = %sn", a, b);
          printf("copy string a to string b:n");
    
          copy_string(a, b);
    
          printf("nString a = %snString b = %sn", a, b);
    }
    
    void  copy_string( char *from, char *to )
    {
          for( ; *from != '�'; from++,to++)
          {
                *to = *from;
          }
    
          *to = '�';
    }
    
    // 丫的,出错了,为什么? WHY??
    // 哈哈,请听视频详细讲解^_^
    [/codesyntax] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LWZJZAVZUVZQ']视频下载[/Downlink]
  • 相关阅读:
    Ubuntu的启动配置文件grub.cfg(menu.lst)设置指南zz
    Qt/E客户端服务期间通信数据串行化
    开源协议简介BSD、 Apache Licence、GPL、LGPL、MIT转载
    Qt/E服务器到客户端的消息传递
    解决 Windows 和 Ubuntu 时间不一致的问题转载
    Qt/E服务器客户端架构
    Qt/E中的键盘设备管理
    Qt/E服务器客户端的通信机制
    解决 ssh 登录慢 转载
    c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”
  • 原文地址:https://www.cnblogs.com/LoveFishC/p/3846042.html
Copyright © 2020-2023  润新知