指针字符数组取值问题
#include <stdio.h>
/*require:用一维指针数组读入字符串,输出如下
输入
abcd efh ijkl
输出:
abcd
efh
ijkl
*/
void readArr(char *p[]);
int main(){
char a0[10]="";
char a1[10]="";
char a2[10]="";
char *pa[3]={a0,a1,a2};
readArr(pa);
puts(pa[0]); //这儿怎么输出pa[0]--->a0--->a0[]的字符串
puts(pa[1]);
puts(pa[2]);
return 0;
}
void readArr(char *p[]){
char temp = getchar();
int i=0; //控制指针数组下标
while(temp!='\n'){ //遇到回车结束输入
while(temp!=' '&&temp!='\n'){
//回车空格结束一个字符串的录入,进入下一个字符串录入,或者结束
*p[i]++=temp;
temp = getchar();
}
if(temp!='\n'){ //过滤掉空格
temp = getchar();
i++; //数组下标紫加
}
}
}
void readArr(char *p[]);
int main()
{
char a0[10] = "";
char a1[10] = "";
char a2[10] = "";
char *pa[3] = { a0, a1, a2 };
readArr(pa);
puts(pa[0]);
puts(pa[1]);
puts(pa[2]);
getchar();
return 0;
}
void readArr(char *p[])
{
char temp = getchar();
int i = 0, j = 0;
while (temp != '\n')
{
p[i][j++] = temp;
temp = getchar();
if (temp == ' ')
{
p[i][j] = 0x0;
temp = getchar();
i++;
j = 0;
if (i >= 3) break;
}
}
}