char *a;
int i,n;
n=strlen(*str);
for(i=0;i<n;i++)
if(*str!=' ')
{a[i]=str[i];
*(str++);
}
a[i]=0;
strcpy(*str,*a);
return;
你的逻辑有些混乱啊,按照你的写法,你应该是遍历str数组,将非空格字符放入a数组,那么a数组的下标当然不能还是用i计数,应该初始化一个j=0用于a数组下标的计数。而且你既然已经用for循环进行i的自增了,为什么还要用指针str自增呢。。我给你改了一下,你试试看。红色是我修改的部分。
int i,n,j=0;
if(str[i]!=' ')
{a[j]=str[i];
j++;
a[j]=0;
而且向你推荐标准答案的编程思路。
void fun (char *str){int i=0;char *p=str;while(*p){if(*p!=' ') /*删除空格*/{str[i]=*p;i++;}p++;}str[i]='\0'; /*加上结束符*/}
点赞
扫一扫分享朋友圈
二维码
分享
你确定要删除这个问题吗?