#include<stdio.h>
int count=0;
char str[1000];
int dg(char* str){
if(*str=='\n') return count;
else{
if(*str!=' ') count++;
}
dg(str+1);
}
int main(void){
gets(str);
printf("%d",dg(str));
}
不伦不类,理解错误
主要问题是字符串结尾判断 把*str=='\n'改为 *str=='\0' 就可以了,修改了如下:
#include<stdio.h>
int count=0;
char str[1000];
int dg(char* str){
if(*str=='\0') {
// printf("before return count=%d\n",count);
return count;
}
else{
if(*str!=' ') {
count++;
// printf("*str=%c,count=%d\n",*str,count);
}
}
dg(str+1);
}
int main(void){
gets(str);
printf("%d",dg(str));
}