【有关问题】一个小程序中的有关问题

【问题】一个小程序中的问题
#include <stdio.h>
int main()
{   
    int i,j,a=0,b=0,c=0,d=0,e=0;
//字符数组(str[3][6])存放字符串(每一个字符元素).
char str[3][5];   
   
     for(i=0;i<3;i++)
 {
/* gets()是输入一行字符串,以回车结束,并且回车键会被过滤掉,不会被读到字符串中。
getchar()是读取一个字符,包括回车键也会被读成一个字符。
所以此处必须用gets(),而不能用getchar().   */
         gets(str[i]);
 }

        for(i=0;i<3;i++)
{
           for (j=0;j<5;j++)
           { 
//数字代表字符的ASCLL码值;可以将数字改为相应的字符.
   if (str[i][j]>=65&&str[i][j]<=90)         
                 a++;
               else if  (str[i][j]>=97&&str[i][j]<=122)
                 b++;
               else if  (str[i][j]>=48&&str[i][j]<=57)
                 c++;
               else if  (str[i][j]==32)
                 d++;
               else if (str[i][j]!=0)
                 e++;
           }
}

printf("大写 : %d\n小写 : %d\n数字 : %d\n空格 : %d\n其它 : %d\n",a,b,c,d,e);
        printf("\n");
}

【有关问题】一个小程序中的有关问题
DOS框中的输出没有问题  但每次都会出现这个错误提示框 这是怎么回事、 改怎么解决?

------解决方案--------------------
根据
char str[3][5];  
每一行输入不能超过5个字符(含回车)。超过就会出现所述错误。
如果要输入较长字符串,那么把5改为更大的数字。