0

単語にインデックスを付けたいのですが、サイズ制限よりも小さい場合は、入力された単語に応じて配列のサイズを変更したい..これが私のコードです:

#include <stdio.h>
#define SIZE 10
int main(void)

{
    int index;
    char wordToPrint[SIZE];
    printf("please enter a random word:\n");
    for (index = 0; index < SIZE; index++)
    {
        scanf("%c", &wordToPrint[index]);
    }
    for (index = 0; index < SIZE; index++)
    {
        printf("%c", wordToPrint[index]);
    }

    return 0;
}

それを定義するには何を追加する必要がありますか?

tnx

4

1 に答える 1

0
#include <stdio.h>
#define SIZE 10
int main(void)
{
    int index;

    // declare a pointer variable to point to allocated space
    char *wordToPrint;

    printf("enter the size of string MAX is 10");
    scanf("%d",&index);
    if(index > 10){ 
       printf("out of allowd limit");
    } else {

        // call malloc to allocate that appropriate number of bytes for the array
        wordToPrint= (char *)malloc(sizeof(char)*index);      // allocate

        // use [] notation to access array buckets
        for(i=0; i < index; i++) 
        {
           scanf("%c",&wordToPrint[i]);
        }
        for (i= 0; i< index; i++)
        {
           printf("%c", wordToPrint[i]);
        }
        free(wordToPrint);
    }

    return 0;
 }

動的メモリ割り当ては、malloc または calloc 関数を使用して c でのみ実行できます。使用者に最大サイズを入力して、それが許可された制限を超えているかどうかを確認するように依頼できます。そうでない場合は、ユーザーが 5 を入力した場合のように、ユーザー入力値のサイズの配列を取得しますサイズ5文字の配列

于 2013-01-24T10:41:43.090 に答える