算法有问题,不可能实现你所提出的问题;for(i=0;*p!='\0';i++) { if(*(p+i)>='0'&&*(p+i)<='9')k++;....}这是个死循环,因为p没有变化,始终指向串首;循环中间也有很多问题