c语言:将一个一维字符数组根据空格和换行符提取变成一个三维数组

例如str[]:1abc2asd3bhu这是我自己写的程序,不知道哪里错了:voidsplit(char*p,charresult[][10][20]){inti=0,j... 例如 str[]:
1 abc
2 asd
3 bhu
这是我自己写的程序,不知道哪里错了:
void split(char *p,char result[][10][20])
{
int i=0,j=0,k=0,t=0;
int flag=0;
while(*p='\0')
{
if(*(p+i)!=32&&*(p+i)!='\n')
{
result[j][k][t]=*p;
t++;
}
if(*(p+i)=='\n')
{
j++;
k=0;t=0;
}
if(*(p+i)==32)
{
k++;
t=0;
}

p++;

}
}
展开
 我来答
折心灬小轩
2013-06-08 · TA获得超过543个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:111万
展开全部
用一个指向“一个指向指针数组”的二级指针就可以了
出现了“烫烫烫烫”是因为你的指针指错了,作为参数被传递后,函数释放栈上变量时,指针指向的地址已经无效
追问
能不能说的详细一点,我不太明白....
追答
是遇到空格算第一维,换行算第二维吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
成灵慧4d
2013-06-07 · TA获得超过189个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:194万
展开全部
既然是3维
那你是不是应该这样输入阿
abc def ghi .....
xxx xxx xxx ....
xxx xxx xxx
那你的那些if应该怕断的分别是,空格' ',换行'\n',最后是'\0'结束
追问
我修改了一下,但运行之后就是烫烫烫了
void split(char *p,char result[][2][20])
{
int i=0,j=0,k=0,t=0;
int flag=0;
while(*p!='\0')
{
if(*p==32)
{
k++;
t=0;
}
if(*p=='\n')
{
j++;
k=0;
t=0;
}
result[j][k][t]=*p;
t++;

p++;

}
}
追答
老大
你稍微逻辑点阿
不要,一会一个if
一会又 一个if
用if..esle if..esle if
类似的结构好吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式