| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1165 人关注过本帖
标题:小弟汗颜```这么简单的都做不起```请帮帮检查错误``
只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
收藏
 问题点数:0 回复次数:10 
小弟汗颜```这么简单的都做不起```请帮帮检查错误``
删除字符串中的空白,函数如下:




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 
2007-10-25 09:34
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
刚才检查了一下```

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

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

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


女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-10-25 09:42
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
你的i一直指向第一个字符,而 *i = *str++这句到最后,肯定是*i='\0',所以第一个元素就为0了。

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-25 10:14
ondy
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-9-4
收藏
得分:0 

while( *i = *str++ )

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

=是付值


2007-10-25 10:15
ondy
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-9-4
收藏
得分:0 
while( *i = *str++ )

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

2007-10-25 10:22
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
以下是引用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 ;
}

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-25 10:23
ondy
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-9-4
收藏
得分:0 
汗,用指针写干吗怒,

2007-10-25 10:24
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
谢谢``LS``明白明白``````

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-10-25 10:26
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
这个好点

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

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-25 10:28
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分: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]
2007-10-25 12:54
快速回复:小弟汗颜```这么简单的都做不起```请帮帮检查错误``
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022778 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved