使用指针数组来输入五个字符串(字符串不等长),应怎么操作?
1、输入一个字符串,可以这样做。
char* ptr;
ptr=”I love C language!”; //此时的字符串可以是任意长度
2、输入两个字符串,可以这样做。
#include <stdio.h>
#include <string.h>
char (*ptr)[10]; //此为数组指针定义
char arr[2][10];
int i;
ptr=arr;
for(I=0;I<2;I++)
{
gets(*(ptr+I)); //此时输入的字符串不能超过10个字符
}
3、 输入三个以上的字符串,当然可以用第二种情况来做。但是,第二种方法规定了输入的字符串必须要在10个字符内(这是我的理解,不知是否正确),令人觉得拘束、不舒服。是否可以输入五个字符串,字符串满足一个条件:不等长且长度不定。显然,用数组指针(第二种方法)鞭长莫及。我想到用指针数组(形如char* ptr[10])来输入这种条件的五个字符串。理由如下:
在谭浩强的《C程序设计》第二版第255页中有这样一段话:
……
利用指针数组作main函数的形参,可以向程序传送命令行参数(这些参数是字符串),这些字符串的长度事先并不知道,而且各参数字符串的长度一般并不相同,命令行参数的数目也是可以任意的。用指针数组能够较好地满足上述要求。
……
根据上面这段话,我想,既然系统可以调用main函数,那么,我也可以写一个函数(用指针数组作形参),用main函数来调用它,在main函数中传实参(五个字符串)给这个函数。
到这里我就卡壳了,因为我想不出这样的操作是如何实现的。请问各位网友,使用指针数组来输入五个字符串(字符串不等长),应如何进行操作?