首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一维指针字符数组函数调用有关问题

2013-01-04 
一维指针字符数组函数调用问题本帖最后由 littleplayer 于 2012-12-01 01:32:18 编辑#include stdio.h/*

一维指针字符数组函数调用问题
本帖最后由 littleplayer 于 2012-12-01 01:32:18 编辑


#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]);
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;
        }
    }
}

热点排行