#include
#include
#include
#define STRLEN 100
void ifree(char**p,int i);
int CheckAndChange(char*p);
int main()
{
int T;/*样例个数*/
int i;/*循环参数*/
char**p=NULL;/*指针p指向的内存空间存放指向各个字符串的指针*/
scanf("%d\n",&T);/*读取T*/
if((p=malloc(T*sizeof(char*)))==NULL)
{
printf("malloc p fail!\n");
return-1;
}
for(i=0;i<T;i++)
{
if((*(p+i)=malloc((STRLEN+1)*sizeof(char)))==NULL)
{
printf("malloc p+%d fail!\n",i);
ifree(p,i);/*释放之前分配的空间*/
free(p);/*释放p*/
return-1;
}
gets(*(p+i));
}
for(i=0;i<T;i++)
{
if(CheckAndChange(*(p+i))>0)/*判断是否都是大写字符,如果是,则变成小写*/
{
printf("%s\n",*(p+i));
}
else
{
printf("string%d contains incorrect character!\n",i+1);
}
}
ifree(p,T);
free(p);
return 0;
}
void ifree(char**p,int i)
{
int j;
for(j=0;j<i;j++)
{
free(*(p+j));
}
}
int CheckAndChange(char p)
{
int i;
for(i=0;i<strlen(p);i++)
{
if(((p+i)>='A')&&(*(p+i)<='Z'))
{
*(p+i)+='a'-'A';
}
else
{
return-1;
}
}
return 1;
}