大佬们帮忙看看这道编程题题为什么输出不对,本人菜鸟一枚

  1. 题目:字符中所有出现的数字前后加上符号“*”,其他字符保持不变
  2. 没弄明白最后多输出的部分是怎么回事,在自己编译器上是正确输出,求解答。
  3. 测试用例:5O6t6FFtIlMVDn7rTaZki4Pl42Xx6n
    正确输出:*5*O*6*t*6*FFtIlMVDn*7*rTaZki*4*Pl*42*Xx*6*n
    我的输出:*5*O*6*t*6*FFtIlMVDn*7*rTaZki*4*Pl*42*Xx*6*n*2211*KpU*0*o*7*nZbj

  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <ctype.h>
  7. int main(void)
  8. {
  9.     char s[1000]={0};
  10.     int i;
  11.     while (gets(s))
  12.     {
  13.         char * pBegin,* pEnd;
  14.         pBegin = pEnd = s;
  15.         while (*pBegin)
  16.         {
  17.             if ( !isdigit(*pBegin) ) 
  18.             {
  19.                 printf("%c",*pBegin);
  20.                 pBegin++;
  21.                 pEnd++;
  22.             }
  23.             else if (!isdigit(*pEnd)||*pEnd == '\0') 
  24.             {
  25.                 printf("*");
  26.                 while (pBegin<pEnd)
  27.                 {
  28.                     printf("%c",*pBegin);
  29.                     pBegin++;
  30.                 }
  31.                 printf("*");
  32.                 pBegin = pEnd;
  33.             }
  34.             else  
  35.                 pEnd++;
  36.         }
  37.     }
  38.     return 0;
  39. }
全部评论
为啥我用你的程序输出是正确的?
点赞
送花
回复 分享
发布于 2017-08-29 15:58
看上去和'\0'有关啊
点赞
送花
回复 分享
发布于 2017-08-29 16:12
国泰君安
校招火热招聘中
官网直投
getchar是数字多输出2个星号不就行了?
点赞
送花
回复 分享
发布于 2017-08-29 17:50

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务