Используя fgets
для ввода строки, у меня есть сомнения относительно длины строки, прочитанной.fgets максимальный размер читать
Например, рассмотрим следующую программу.
char str[50];
int i;
int len;
printf("Enter name:\n");
fgets(str,11,stdin);
len = strlen(str);
printf("len : %d\n",len);
Если я вхожу
123456789
,strlen
дает 10.Если я вхожу
1234567890
,strlen
получили в 10 раз ??
0 думаю, strlen
рассматривается новая линия тоже для длина строки. Я прав? (я понимаю fgets
, используя новую строку как часть строки)
Что случилось с (2), где я ввожу ровно 10 символов, Здесь длина строки должна быть 11 правильно? 10 + 1 (для перевода строки) = 11
printf ("len:% d", len); \t printf ("str:% s", str); \t printf ("hi"); return 0; } Добавление нескольких отпечатков помогает прояснить ответы, приведенные ниже. Обратите внимание, как печатается «привет». – kumar