devine () Funcția

Ghidul începătorului - C Limba: Carte

devine () Funcția

Această funcție de lectură linii este foarte convenabil pentru sistemele de dialog. Acesta primește un șir de caractere de la dispozitivul standard de intrare în sistem, care, după cum presupunem, este tastatura. Deoarece șirul nu are nici o lungime predeterminată, devine () funcție trebuie să știe când închide. Funcția citește de caractere, atâta timp cât nu respectă caracterul NEWLINE ( ​​„n“), pe care le creați prin apăsarea [enter]. Funcția ia toate caracterele până la (dar nu inclusiv) caracterul NEWLINE, li se alătură caracterul nul ( „“) și trece un șir apelantului. Aici este un mod simplu de a utiliza funcția.

char nume [81]; / * Alocați memorie * /

printf ( "Bună ziua, ce-i numele tău n?");

devine (nume); / * Numele unitatii de cazare au intrat în șirul „numele“ * /

printf ( "nume bun,% s n" nume.);

Funcția va accepta orice nume (inclusiv spațiile), în lungime de 80 de caractere. (Nu uitați să stoc pentru un singur caracter“.)

Rețineți că am dorit să folosească funcția devine () pentru a lucra la ceva (numele) în programul de apelare. Deci, trebuie să folosim un indicator ca argument; și numele de matrice, desigur, este un pointer.

Funcția devine () are o capacitate mai mare decât cea prezentată în ultimul exemplu. Aruncati o privire la programul:

printf ( "Bună ziua, ce-i numele tău n?");

printf ( "% s Ax% s n !!?", nume, PTR);

Bună, care e numele tău?

Tony de Tonului? Ah! Tony de Tonului!

devine () funcție vă oferă două moduri de a intra în șir!

indicii 1. Metoda de utilizare pentru liniile de transport în nume.

2. Utilizați revenirea cuvintelor cheie pentru a returna un șir de caractere în PTR.

Reamintim că este un pointer ptr la un char. Acest lucru înseamnă că devine () ar trebui să returneze o valoare care este un pointer la un char. Iar în prezentarea de mai sus puteți vedea că am descris și devine ().

Se spune că devine () este o funcție (de aici paranteze), cum ar fi „pe un pointer char“ (și, prin urmare, char *). În exemplul de obținere a imeni1 am făcut fără această descriere, pentru că nu am încercat să folosească devine (valoare funcția de întoarcere).

De altfel, puteți descrie, de asemenea, indicatorul funcției. Ar arăta după cum urmează:

Structura devine () funcția ar arata astfel:

în cazul în care NULL definit în fișierul stdio.h ca 0. Cu numele de indicatorul matrice este setat. Prezență vă permite să atribuiți valoarea de returnare a întregului devine (numele) și controalele pentru EOF. Această dublă abordare este mai compact decât funcția de utilizare getchar (). care este o întoarcere fără un argument.

în timp ce ((CH = getchar ())! = EOF)