Функції gets() і puts() оголошено у файлі заголовка stdio.h. Обидві функції задіяні в операціях введення/виведення рядків.
C функція gets().
Функція gets() дозволяє користувачеві вводити кілька символів, а потім клавішу enter. Усі символи, введені користувачем, зберігаються в масиві символів. Нульовий символ додається до масиву, щоб зробити його рядком. Функція gets() дозволяє користувачеві вводити рядки, розділені пробілами. Він повертає рядок, введений користувачем.
Декларація
char[] gets(char[]);
Читання рядка за допомогою gets()
#include void main () { char s[30]; printf('Enter the string? '); gets(s); printf('You entered %s',s); }
Вихід
Enter the string? javatpoint is the best You entered javatpoint is the best
Використовувати функцію gets() ризиковано, оскільки вона не виконує жодної перевірки прив’язки масиву та продовжує читати символи, доки не зустрінеться новий рядок (enter). Він страждає від переповнення буфера, чого можна уникнути за допомогою fgets(). Функція fgets() забезпечує зчитування не більше максимальної кількості символів. Розглянемо наступний приклад.
#include void main() { char str[20]; printf('Enter the string? '); fgets(str, 20, stdin); printf('%s', str); }
Вихід
Enter the string? javatpoint is the best website javatpoint is the b
Функція C puts().
Функція puts() дуже схожа на функцію printf(). Функція puts() використовується для друку рядка на консолі, який попередньо був прочитаний за допомогою функції gets() або scanf(). Функція puts() повертає ціле число, що представляє кількість символів, які друкуються на консолі. Оскільки він друкує додатковий символ нового рядка разом із рядком, який переміщує курсор на новий рядок на консолі, ціле значення, яке повертає puts(), завжди дорівнюватиме кількості символів у рядку плюс 1.
Декларація
int puts(char[])
Давайте розглянемо приклад читання рядка за допомогою gets() і друку його на консолі за допомогою puts().
#include #include int main(){ char name[50]; printf('Enter your name: '); gets(name); //reads string from user printf('Your name is: '); puts(name); //displays string return 0; }
Вихід:
Enter your name: Sonoo Jaiswal Your name is: Sonoo Jaiswal