当前位置: 代码迷 >> C语言 >> 小弟汗颜```这么简单的都做不起```请帮帮检查错误``
  详细解决方案

小弟汗颜```这么简单的都做不起```请帮帮检查错误``

热度:141   发布时间:2007-10-25 09:34:01.0
小弟汗颜```这么简单的都做不起```请帮帮检查错误``
删除字符串中的空白,函数如下:




int DelSpace(char* str)
{
char *i=str,*j=str,*p=str;

puts(p) ; //P用来检查的```

while( *i = *str++ )
if( *i != ' ' )
*j++ = *i ;
*j = *i ; //最后加上'\0'

puts(p) ;
printf("%d\n",p[0]); //我发现执行完后``第一个元素竟然是0```这是为何``

return 0 ;
}


请大家``指点迷津```小弟不甚感谢````


搜索更多相关的解决方案: str  汗颜  char  puts  

----------------解决方案--------------------------------------------------------
刚才检查了一下```

发现结果是空格的确删除了````但是字符串的第一个元素却是'\0'```它把正确结果的第一个元素覆盖了``

为什么第一个回成为'\0'呢``

[此贴子已经被作者于2007-10-25 9:46:14编辑过]


----------------解决方案--------------------------------------------------------
你的i一直指向第一个字符,而 *i = *str++这句到最后,肯定是*i='\0',所以第一个元素就为0了。
----------------解决方案--------------------------------------------------------

while( *i = *str++ )

请问表达式里有 = 这样的写法么?

=是付值


----------------解决方案--------------------------------------------------------
while( *i = *str++ )

这样写IDE是不会报错的,这是个很容易的错误
----------------解决方案--------------------------------------------------------
以下是引用ondy在2007-10-25 10:22:02的发言:
while( *i = *str++ )

这样写IDE是不会报错的,这是个很容易的错误

LZ是故意这么写的,这个不是错误

我自己写了一个,不太简练

程序代码:

int DelSpace(char* str)
{
char *i=str,*j=str,*p=str;
while(*i)
{
if(*i != ' ')
*j++ = *i;
i++;
}
*j='\0';
puts(p);
return 0 ;
}

----------------解决方案--------------------------------------------------------
汗,用指针写干吗怒,
----------------解决方案--------------------------------------------------------
谢谢``LS``明白明白``````
----------------解决方案--------------------------------------------------------
这个好点
程序代码:

int DelSpace(char* str)
{
char *i=str,*j=str;
do
{
if(*i != ' ')
*j++ = *i;
}while(*i++);
*j='\0';
puts(str);
return 0 ;
}

----------------解决方案--------------------------------------------------------
楼主是做这个题么http://yzfy.org/bbs/viewthread.php?tid=489

代码可以写的很简单且简短,加油



by 雨中飞燕 C/C++学习讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]

----------------解决方案--------------------------------------------------------
  相关解决方案