回覆列表
  • 1 # 使用者674626316078

    #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;

    }

  • 中秋節和大豐收的關聯?
  • 雀巢咖啡機怎麼使用?