#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*/
gets(*(p+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";
return 1;
#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;
}