指针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]
原文地址:https://www.cnblogs.com/LoveFishC/p/3847021.html