C语言 指针操作练习


/* 
*  题目:
*   将一字符串用数组输出:
*   要求如下:
*   1、字符串str=“ls  -wl  -jsj  lst  dwoc  sllj –woih  “;字符串中的空格是无规律的,有可能一个空格,也有可能两三个空格。
*  
*   2、将字符串输出到数组arr[0]----arr[9]中,要求从ls后面开始输出,arr[0]=-wl,
*   arr[1]=-jsj;
*   arr[2]=lst;一直输到arr[9],字符串不够的话,用NULL
*   
*   运行环境: turboc 2.0
*   日期: 2008 - 5 - 24
*   coder: sparkvivid
*/

#include "stdio.h"
main()
{
  int i,j=0,k;
  char str[]="ls  -wl  -jsj  lst  dwoc  sllj  -woih  ";
  char * arr[10];/*定义字符指针数组,用来保存字符串地址*/
  char * p;
 
  /*初始化字符指针数组为全空*/
  for( i=0 ; i<10 ; i++)
  {
    arr[i] = NULL ;
  }
 
 
  /*
    将"-wl"的地址用arr[0]保存,
    将"-jsj"的地址用arr[1]保存,
    将"lst"的地址用arr[2]保存,
    将"dwoc"的地址用arr[3]保存,
    将"sllj"的地址用arr[4]保存,
    将"-woih"的地址用arr[5]保存,   
  */
  for( i=2 ; str[i]!='/0' ; i++)
  {
     if(str[i] != ' ')
     {
        arr[j] = &str[i] ;
        j++ ;
        for(k=i ;str[k] != ' ' ;k++)
        {
        }
        i = k;
     }
  }
 
   /*如果arr[i]不为空,则输出arr[i]中保存的字符串*/
   for(i=0; i<10; i++)
   {
     if( arr[i] != NULL )
     {
       p = arr[i] ; /*当前字符传地址赋给p*/

       /*如果当前指针p不指向空格,则输出当前p指向的字符,如果p指向空格,则跳出while循环*/
       while(*p != ' ')
       {
         printf("%c",*p);
         p++ ; /*指针p往后移动一个字符*/
       }
       printf("/n");
     } 
  }
}

 运行结果 :

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值