| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格去掉 ...
只看楼主 加入收藏
新人入门
Rank: 2
等 级:论坛游民
帖 子: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
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
代码好奇葩

总有那身价贱的人给作业贴回复完整的代码
2014-09-05 20:05
新人入门
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
收藏
得分:0 
回复 2 楼 embed_xuel
小弟我是新手呀,自己上个月初买的书,然后刚刚自学了一个月,你可以帮忙解答或者写一个吗?
2014-09-05 20:10
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3 楼 新人入门
你有思路吗?结合你的代码说说你的思路?

总有那身价贱的人给作业贴回复完整的代码
2014-09-05 20:18
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分: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
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分: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
新人入门
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
收藏
得分: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
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分: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
新人入门
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
收藏
得分:0 
回复 5 楼 erty1001
谢谢您的细心解答,不过小弟是想用指针来去掉空格的
2014-09-05 20:52
新人入门
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2014-9-5
收藏
得分: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
快速回复:求大神们赐教为什么出错(代码的目地是要将 str[10]="hel l o"里的空格 ...
数据加载中...
 
   



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

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