问题 B: 首字母大写:运行没有问题,但在codeup上通不过,不知道错哪儿

#include<stdio.h> 
#include<string.h>

int main(){
	char str[100];
	while(gets(str)!=NULL){
		//printf("1:%s\n",str);
		int n=strlen(str);
		//printf("2:%d\n",n);  	
		int i;
		char ans[100][100];
		int r=0,h=0;
		for(i=0;i<n;i++){
			if(str[i]!=' '&&str[i]!='\t'&&str[i]!='\r'&&str[i]!='\n')
			{
				ans[r][h]=str[i];
				if(h==0&&ans[r][h]>='a'&&ans[r][h]<='z'){
					ans[r][h]=ans[r][h]-32;
				}
				h++;
				//printf("3:r=%d h=%d\n",r,h);
			}		
			else{
				ans[r++][h]='\0';
				h=0;
				//printf("4.1:%c\n",ans[r-1][h]);
				//printf("4:r=%d h=%d\n",r,h);
			}		
		}
		//printf("5:r=%d\n",r);
		for(i=0;i<=r;i++){
			printf("%s",ans[i]);
			if(i<r) printf(" ");
		}
		printf("\n");
	}		
	return 0;
}