Функции gets() и puts() позволяют читать строки с клавиатуры и выводить их на экран.
Функция gets() читает строку символов, введенных с клавиатуры и помещает их по адресу, указанному в аргументе. Можно набирать символы, пока не нажата клавиша < >. Символ, соответствующий клавише Enter– возврат каретки – не станет частью строки. Функция gets() имеет прототип:
char *gets(char *str);
где str – это массив символов. Функция gets() возвращает указатель на str. Следующая программа осуществляет чтение строки в массив str и выводит ее длину:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[80];
gets(str);
printf(“Length is %d”,strlen(str);
}
Имеется проблема, связанная с gets(), о которой следует знать: нельзя переходить границы массива, с которым она вызывалась. Для предыдущего примера это 80.
Функция puts() выводит передаваемый ею аргумент на экран, завершая вывод переходом на новую строку. Она имеет следующий прототип:
int puts(const char *str);
Здесь str – выводимая строка. Функция возвращает нецелое число в случае удачи и EOF в случае неудачи. Она воспринимает коды и с обратным слэшем, как и printf(), например \t воспринимается как табуляция. Вызов функции puts() требует гораздо меньше процессорного времени на реализацию, чем printf(). Она не может выводить числа и выполнять преобразование форматов.