Get() a puts() sú deklarované v hlavičkovom súbore stdio.h. Obe funkcie sú zapojené do vstupných/výstupných operácií reťazcov.
Funkcia C dostane ().
Funkcia gets() umožňuje používateľovi zadať niekoľko znakov, za ktorými nasleduje kláves enter. Všetky znaky zadané používateľom sa uložia do poľa znakov. Znak null sa pridá do poľa, aby sa z neho stal reťazec. Get() umožňuje používateľovi zadať reťazce oddelené medzerou. Vráti reťazec zadaný používateľom.
Vyhlásenie
char[] gets(char[]);
Čítanie reťazca pomocou get()
#include void main () { char s[30]; printf('Enter the string? '); gets(s); printf('You entered %s',s); }
Výkon
Enter the string? javatpoint is the best You entered javatpoint is the best
Použitie funkcie get() je riskantné, pretože nevykonáva žiadnu kontrolu viazania poľa a pokračuje v čítaní znakov, kým nenájdete nový riadok (enter). Trpí pretečením vyrovnávacej pamäte, čomu sa dá vyhnúť použitím fgets(). Funkcia fgets() zabezpečuje, že sa neprečíta viac ako maximálny limit znakov. Zvážte nasledujúci príklad.
bash if vyhlásenie
#include void main() { char str[20]; printf('Enter the string? '); fgets(str, 20, stdin); printf('%s', str); }
Výkon
Enter the string? javatpoint is the best website javatpoint is the b
C puts() funkciu
Funkcia puts() je veľmi podobná funkcii printf(). Funkcia puts() sa používa na vytlačenie reťazca na konzole, ktorý sa predtým načítal pomocou funkcie gets() alebo scanf(). Funkcia puts() vracia celočíselnú hodnotu predstavujúcu počet znakov vytlačených na konzole. Keďže s reťazcom vytlačí ďalší znak nového riadku, ktorý presunie kurzor na nový riadok na konzole, celočíselná hodnota vrátená puts() sa bude vždy rovnať počtu znakov prítomných v reťazci plus 1.
Vyhlásenie
int puts(char[])
Pozrime sa na príklad čítania reťazca pomocou get() a jeho vytlačenia na konzole pomocou 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; }
Výkon:
Enter your name: Sonoo Jaiswal Your name is: Sonoo Jaiswal