Я пытаюсь написать простой код, в котором пользователь должен ввести строку, но если строка содержит более пяти символов, она должна распечатать ошибку и вернуть -1. Я использовал fgets для получения ввода и strlen для вычисления длины строки.
#include <stdio.h>
#include <strings.h>
#include <stdlib.h>
int main()
{
char a[5];
int length = 0;
printf("Enter a string to calculate it's length\n");
fgets(a,5,stdin);
length = strlen(a)-1; // don't want the '\n' to be counted
if(length > 5){
printf("error");
}
printf("string length %d\n",length);
return 0;
}
Когда я ввожу строку с более чем 5 символами, она не выводит ошибку, а просто выводит, что размер строки равен трем.
Может ли кто-нибудь дать мне подсказку?
Заранее спасибо.
fgets
ссылку и узнайте, что означает ее второй аргумент. - person Some programmer dude   schedule 04.12.2018strlen
и обнаружить, что ее длина слишком велика? - person Steve Summit   schedule 04.12.2018