/*
* 题目:
* 将一字符串用数组输出:
* 要求如下:
* 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");
}
}
}
运行结果 :