Я пытаюсь заполнить строку символами из строки 'reset \ 0', но рандомизирован. По какой-то причине он только дает мне один символ Спинка:Строка не заполняется случайными символами (C)?
#define STR_LEN 6
char *inputString()
{
char *string[STR_LEN + 1] = {0};
const char *digits = "reset\0";
int i;
for (i = 0; i < STR_LEN; i++)
{
string[i] = digits[ rand() % 5 + 0 ];
}
printf("STRING: %s\n", string);
}
печатает только один символ, как «т» или «е» на консоль. Что я делаю не так?
переменная 'string' является массивом * указателей * на символы, а не на массив символов, как вы его рассматриваете. Этот код должен был дать вам много предупреждений, а если нет, вам нужно включить дополнительные предупреждения. –
Кроме того, если у вас есть строковый литерал, например, например. '" reset "' он автоматически включает в себя ограничитель строки, имея '" reset \ 0 "' у вас есть * два * терминатора и отходы байта. –
Вы должны использовать макрос 'NULL', а не целое число' 0'. Последнее также устарело и в C++. – Olaf