小弟汗颜```这么简单的都做不起```请帮帮检查错误``
删除字符串中的空白,函数如下: 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 ;
}
请大家``指点迷津```小弟不甚感谢````
----------------解决方案--------------------------------------------------------
刚才检查了一下```
发现结果是空格的确删除了````但是字符串的第一个元素却是'\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是不会报错的,这是个很容易的错误
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]
----------------解决方案--------------------------------------------------------