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 回答