| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 753 人关注过本帖, 1 人收藏
标题:[求助]一道c primer plus里的复习题
取消只看楼主 加入收藏
zhk3293474
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2008-3-24
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:2 
[求助]一道c primer plus里的复习题
题目:
利用if else语句编写程序读取输入,直到#。用一个感叹号代替每个句号,将原有的每个感叹号用两个感叹号代替,最后报告进行了多少次替代。


疑问:将原有的每个感叹号用两个感叹号代替
 能否仅仅就用数组做到?如何做到?

刚刚思考了半天,如果使用数组,那么感叹号后面插入一个感叹号,那么后面本身在感叹号后面的字符全都要后移一位
搜索更多相关主题的帖子: 复习题 primer 
2009-10-20 18:07
zhk3293474
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2008-3-24
收藏
得分:0 
这是我自己按照题目编写的代码,数'!'和'.'没有什么问题,我是想把输入的数据放入到一个数组里面,然后打印出来看替换的是否正确,但是出现了问题

请帮忙看下我的strlen使用有什么问题,还是ch=chh[]这里数据赋值有问题?我不管输入多少字符,n永远等于1007

#include"stdio.h"
#include"string.h"
int main(void)
{char ch;
 char chh[1000];
 int count=0;
 int count2=0;
 int n,i;
first:if((ch=getchar())!='#')
 { chh[count2]=ch;
  if(chh[count2]=='!')
  {chh[count2+1]='!';
   count++;
   count2+=2;
  }
  if(chh[count2]=='.')
    {chh[count2]='!';
        count++;
        count2++;
     }
  goto first;
}   
      n=strlen(chh);
printf("tidai le %d ci\n",count);
/*for(i=0;i<n;i++)
printf("%c",chh[i]);*/
printf("%d",n);
return 0;
}
2009-10-22 14:42
zhk3293474
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2008-3-24
收藏
得分:0 
非常感谢2楼和4楼
2009-10-22 16:35
快速回复:[求助]一道c primer plus里的复习题
数据加载中...
 
   



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

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