[求助]一道c primer plus里的复习题
题目:利用if else语句编写程序读取输入,直到#。用一个感叹号代替每个句号,将原有的每个感叹号用两个感叹号代替,最后报告进行了多少次替代。
疑问:将原有的每个感叹号用两个感叹号代替
能否仅仅就用数组做到?如何做到?
刚刚思考了半天,如果使用数组,那么感叹号后面插入一个感叹号,那么后面本身在感叹号后面的字符全都要后移一位
程序代码:#include"stdio.h"
#include"string.h"
int main(void)
{char ch;
char chh[1000];
int count=0;
int count2=0;
while((ch=getchar())!='#')
{ chh[count2]=ch;
if(chh[count2]=='!')
{
chh[count2+1]='!';
count++;
count2++;
}
if(chh[count2]=='.')
{
chh[count2]='!';
count++;
}
count2++;
}
chh[count2]=0;
printf("tidai le %d ci\n",count);
printf("%s\n%d\n",chh,strlen(chh));
return 0;
}
