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++;
}
} 展开
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++;
}
} 展开
2个回答
展开全部
用一个指向“一个指向指针数组”的二级指针就可以了
出现了“烫烫烫烫”是因为你的指针指错了,作为参数被传递后,函数释放栈上变量时,指针指向的地址已经无效
出现了“烫烫烫烫”是因为你的指针指错了,作为参数被传递后,函数释放栈上变量时,指针指向的地址已经无效
追问
能不能说的详细一点,我不太明白....
追答
是遇到空格算第一维,换行算第二维吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然是3维
那你是不是应该这样输入阿
abc def ghi .....
xxx xxx xxx ....
xxx xxx xxx
那你的那些if应该怕断的分别是,空格' ',换行'\n',最后是'\0'结束
那你是不是应该这样输入阿
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
类似的结构好吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询