[求助]一道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; }