|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格去掉)
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
636
人关注过本帖
标题:
求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格去掉 ...
只看楼主
加入收藏
新人入门
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:15 回复次数:9
求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格去掉)
#include<stdio.h>
void main()
{
char str[10]="hel l o";
char *p;
p=str;
int u;
for(u=0;u<10;u++)
{
*p=str[u];
}
printf("%s",str);
}
2014-09-05 20:03
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
2
楼
收藏
得分:0
代码好奇葩
总有那身价贱的人给作业贴回复完整的代码
2014-09-05 20:05
举报帖子
使用道具
赠送鲜花
新人入门
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
第
3
楼
收藏
得分:0
回复 2 楼 embed_xuel
小弟我是新手呀,自己上个月初买的书,然后刚刚自学了一个月,你可以帮忙解答或者写一个吗?
2014-09-05 20:10
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
4
楼
收藏
得分:0
回复 3 楼 新人入门
你有思路吗?结合你的代码说说你的思路?
总有那身价贱的人给作业贴回复完整的代码
2014-09-05 20:18
举报帖子
使用道具
赠送鲜花
erty1001
等 级:
蜘蛛侠
威 望:
4
帖 子:331
专家分:1433
注 册:2014-8-31
第
5
楼
收藏
得分:4
“求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格去掉)”
简单说说:可能思路不一样 修改的地方幅度比较大
#include<stdio.h>
void main()
{
char str[10]="hel l o";
/*char *p;
p=str;
*/
我的方法可以不用另外的p指针
int u;
int k=0;
//我需要额外的一个变量k
for(u=0;u<10;u++)
{
/*
*p=str[u] ; */
你这条原来的代码我忽略了
if(str[u]=='\0') {str[k]='\0';break;}
这里是我新加的代码
if(str[u]!=' ')
这里是我新加的代码
{str[k]=str[u];k++;}
这里是我新加的代码
}
printf("%s\n",str);
//这里我简单加了个\n
}
2014-09-05 20:28
举报帖子
使用道具
赠送鲜花
erty1001
等 级:
蜘蛛侠
威 望:
4
帖 子:331
专家分:1433
注 册:2014-8-31
第
6
楼
收藏
得分:5
使用 char *p的代码如下
#include<stdio.h>
void main()
{
char str[10]="hel l o";
char *p=str;
int u;
for(u=0;u<10;u++)
{
if(str[u]=='\0') {*p='\0';break;}
if(str[u]!=' ')
{*p=str[u];p++;}
}
printf("%s\n",str);
}
2014-09-05 20:30
举报帖子
使用道具
赠送鲜花
新人入门
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
第
7
楼
收藏
得分:0
回复 4 楼 embed_xuel
在此小弟先表示抱歉,因为发该贴的时候不小心把if(p==" ") continue;这条语句给漏写了,我之前完整的是这样子的,你看看我的思路问题出在哪里,谢谢!
#include<stdio.h>
void main()
{
char str[10]="hel l o";//定义一个十位字符的字符串
char *p;//定义一个指针
p=str;//指向目标
int u;
for(u=0;u<10;u++) //使用for循环遍历字符
{
*p=*(p+u);
if(*P==' ')//使用判断语句
continue;//使用continue语句,如果*p等于空格的话那就不输出,如果不等于的话就输出
}
printf("%s",str);
}
2014-09-05 20:36
举报帖子
使用道具
赠送鲜花
embed_xuel
等 级:
贵宾
威 望:
58
帖 子:3845
专家分:11385
注 册:2011-9-13
第
8
楼
收藏
得分:6
for(u=0;u<10;u++) //使用for循环遍历字符
{
*p=*(p+u);
//每次循环,p指向哪里?有变化吗?
if(*P==' ')//使用判断语句
continue;//使用continue语句,如果*p等于空格的话那就不输出,如果不等于的话就输出
//而且你是先赋值,然后再判断,还有用吗?
}
[
本帖最后由 embed_xuel 于 2014-9-5 20:45 编辑
]
总有那身价贱的人给作业贴回复完整的代码
2014-09-05 20:41
举报帖子
使用道具
赠送鲜花
新人入门
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
第
9
楼
收藏
得分:0
回复 5 楼 erty1001
谢谢您的细心解答,不过小弟是想用指针来去掉空格的
2014-09-05 20:52
举报帖子
使用道具
赠送鲜花
新人入门
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
第
10
楼
收藏
得分:0
回复 8 楼 embed_xuel
非常感谢您的赐教,经过您的纠错我左思右想了许久,总算是纠正过来了,下面是我改写后的代码;
#include<stdio.h>
void main()
{
char str[10]="hel l
o";
char *p,*pp;
int u;
for(u=0;u<10;u++)
{
p=&str[u];
if(*p!=' ')
pp=p;
if(*p==' ')
continue;
printf("%c",*pp);
}
printf("\n");
}
2014-09-05 21:53
举报帖子
使用道具
赠送鲜花
10
1/1页
1
快速回复:
求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格 ...
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.051348 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved