程序P运行时,使用者在键盘上的输入如下面带下划线的部分所示(<CR>表示换行):
Input string: Shanghai2010(A)<CR>
请指出该程序的输出结果。
[ 程序P ]
#include <stdio.h>
main()
{ char s[64],t[64], *p,*q; int k;
printf("Input string: "); scanf("%s",s);
for(k=0,p=s,q=t;*p!='\0';++p)
if(*p<’0’&&*p>’9’)*q++=*p; else ++k;
*q=’\0’;
printf(“%s[%d]\n”,t,k);
}
Input string: Shanghai2010(A)<CR>
请指出该程序的输出结果。
[ 程序P ]
#include <stdio.h>
main()
{ char s[64],t[64], *p,*q; int k;
printf("Input string: "); scanf("%s",s);
for(k=0,p=s,q=t;*p!='\0';++p)
if(*p<’0’&&*p>’9’)*q++=*p; else ++k;
*q=’\0’;
printf(“%s[%d]\n”,t,k);
}
不过程序有点莫名其妙,if(*p<’0’&&*p>’9’)有什么用呢?
可能是
if(*p<’0’||*p>’9’)
这样的话就是
Shanghai(A)[4]
btw,
if(*p<’0’&&*p>’9’)
应该是
if(*p<’0’||*p>’9’)