Как мне заполнить скобки моего массива, могу ли я использовать strlen? - PullRequest
0 голосов
/ 22 декабря 2018

нужна длина строки для моего scanf, как мне определить, какое число поставить между [], можно использовать A [strlen].

#include <stdio.h>
#include <conio.h>
#include <string.h>

int main()
{
    char A[];
    printf("enter a string");
    scanf("%s", A);
    printf("%s", A);
    getch();

}

1 Ответ

0 голосов
/ 22 декабря 2018

Только вы можете знать, какой длины достаточно для ваших нужд.

Если имеется ограниченный набор или диапазон допустимых входов, вы можете использовать длину максимально допустимого входа + 1.

Если нет ограничения на максимально допустимый ввод, либо вам нужно решить, что ваша программа не поддерживает ввод более длинным, чем X, и установить его как ограничение, либо реализовать чтение в цикле в динамически растущий буфер (например, используя realloc при необходимости).

И всегда не забывайте ограничивать максимально допустимую длину ввода при чтении, чтобы избежать переполнения буфера чрезмерным вводом.(Использование fgets часто проще всего сделать правильно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...