printf ("Nu este ca întregul"); FIG. 15.4. Programul pentru utilizarea atoi (). Am asigurat verificarea unor erori. În primul rând, rezultă că" />

Transformarea șirurilor de caractere atoi (), atof ()

printf ("Numărul a fost .. n")

printf ("Nu este ca întregul");

FIG. 15.4. Programul pentru utilizarea atoi ().

Am asigurat verificarea unor erori. Mai întâi, ar trebui să vedeți dacă șirul de intrare se potrivește în matricea atribuită. Deoarece numărul este o matrice de caractere statice, este inițializat cu zerouri. Dacă ultimul element al matricei nu este zero, atunci ceva nu este în regulă și programul nu mai funcționează. Aici am folosit funcția bibliotecă ieșire (). care ne scoate din program. Puțin mai târziu vom descrie pe scurt această funcție.







Apoi vom vedea dacă șirul conține altceva decât spații, numere și semne algebrice. Funcția respinge liniile de tipul "copac" sau "1.2E2". Se potrivește cu un amestec similar cu "3 - 4 + 2", dar atoi () va efectua o selecție suplimentară. Amintiți-vă! este operația de negare, prin urmare! isdigit (c) înseamnă: "c nu este o cifră". rând







arată modul în care se folosește funcția atoi (). Argumentul său este un pointer la un șir de caractere; în acest caz am aplicat numele numărului de matrice. Funcția returnează o valoare întregă pentru un astfel de șir. Astfel, "1234" este un șir de patru caractere și este convertit la 1234 - un singur număr de tip int.

Funcția atoi () ignoră spațiile de conducere, procesele de conducere semn algebric, dacă este cazul, și procesează numerele până când primul caracter este o ns cifre. Prin urmare, exemplul nostru, „3 - 4 + 2“ ar fi convertită la o valoare de 3. A se vedea „Întrebări“ la sfârșitul capitolelor pentru posibila utilizare a acestei funcții.

Funcția atof () efectuează acțiuni similare pentru numerele cu puncte în virgulă mobilă. Se întoarce un tip dublu. așa că ar trebui să fie descris ca un dublu în programul care o folosește.

Versiunile simple ale atof () se vor ocupa de numerele formularului 10.2, 46 și - 124.26. Versiunile mai puternice convertesc de asemenea notația exponențială, adică numere precum 1.25E-13.

Sistemul dumneavoastră poate avea, de asemenea, o funcție inversă, care lucrează în direcția opusă. itoa () funcția va converti un număr întreg de la un șir de caractere, și funcția ftoa () pentru a converti un număr în virgulă flotantă la un șir de caractere.







Trimiteți-le prietenilor: