Я получаю ошибку сегментации при использовании strlen.
Моя функция:
void myFunction()
{
int counter = 0;
char * userInput;
bool validInput = true;
while (1)
{
validInput = true;
printf("\nEnter a word: ");
scanf("%s", userInput);
for(counter = 0; counter < strlen(userInput); counter++)
{
if (islower(userInput[counter]) == 0)
{
validInput = false;
break;
}
if (isalpha(userInput[counter]) == 0)
{
validInput = false;
break;
}
}
if (!validInput)
{
printf("Please enter a wordcontaining only lower-case letters.\n");
continue;
}
// Do something
break;
}
}
Что-то не так с моей строкой scanf? Раньше у меня никогда не было таких проблем с использованием strlen ... поэтому я предполагаю, что, возможно, я неправильно читаю ввод пользователя в «userInput».
userInput
- person yano   schedule 06.12.2017scanf()
, а затем наstrlen()
; может произойти все, что угодно. Ожидается, что вы передадите указатель, указывающий на достаточное хранилище для строки, которую вы хотите отсканировать. - person John Bollinger   schedule 06.12.2017