12. Funcţii de conversie

a.) Conversia unui întreg în sir de caractere

char *itoa(int valoare, char *s, int baza);

valoare -valoarea de convertit

s -variabila sir care va conţine şirul obţinut

baza -specifica baza utilizată în conversie (trebuie să fie între 2 şi 36

inclusiv). In cazul în care valoarea este negativa şi baza este 10, primul caracter al şirului va fi (-).

Descriere

Pentru utilizarea funcţiei trebuie inclus heder-ul stdlib.h.

Converteşte un întreg într-un şir de caractere. Şirul obţinut prin conversie va conţine caracterul 0 pe ultima poziţie.

Lungimea şirului returnat poate fi cel mult 17 bytes.

Valoarea returnată

Funcţia returnează adresa şirului obţinut.

Exemplu: Să se convertească un număr întreg într-un şir de caractere, folosind baza 2.

//ITOA

#include <iostream.h> 

#include <conio.h>

#include <string.h>

#include <stdlib.h>

void main()

{int k,baza;

char s[17];

cout<<"numar:";cin>>k;

cout<<"baza:";cin>>baza;

itoa(k,s,baza); //converteste numarul in sir

cout<<"sirul:"<<s;

getch();

}

Alte funcţii de conversie similare:

 Funcţia ltoa converteşte o valoare de tip long int într-un şir de

caractere.

char *ltoa(int valoare, char *s, int baza);

 Funcţia ultoa converteşte o valoare de tip unsigned longt într-un şir de

caractere.

char *ltoa(int valoare, char *s, int baza);


b.) Conversia unui şir de caractere într-un întreg

long strtol(const char *s, char **adresa, int baza);

s -sirul se convertit

adresa -adresa unei variabile de tip char*, rwţine adresa caracterului din şir

care nu poate fi convertit.

baza -baza în care este considerat numărul sub formă de şir. Poate avea valorile 8, 10 sau 16.

Descriere

Pentru utilizarea funcţiei trebuie inclus heder-ul stdlib.h.

Funcţia strtol converteşte şir de caractere într-o valoare de tip long.

Valoarea returnată

Funcţia returnează adresa şirului obţinut.

Exemplu: Să se convertească un şir de caractere conţinând un număr în baza 10 în număr. În cazul în care nu poate fi convertit să se afişeze de unde nu poate fi convertit.

Alte funcţii de conversie similare:

 Funcţia strtod converteşte şir de caractere într-o valoare de tip double.

double strtod(const char *s, char **adresa, int baza);

 Funcţia strtold converteşte şir de caractere într-o valoare de tip long

double.

long double strtold(const char *s, char **adresa, int baza);

 Funcţia strtoul converteşte şir de caractere într-o valoare de tip

unsigned long.

unsigned long strtol(const char *s, char **adresa, int baza);

 //STRTOL

#include <iostream.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

void main()

{int baza;

long k;

char s[17],*p=NULL;

cout<<"sir:";cin>>s;

cout<<"baza(8,10,16):";cin>>baza;

k=strtol(s,&p,baza); //face conversia

cout<<"valoarea numerica:"<<k<<endl;

cout<<"nu s-a putut converti de la:"<<p; //afiseaza de unde nu poate fi convertit

getch();

}

Înapoi                                                                                                                                     Înainte

Informatica e uşoară dacă o iei pas cu pas!
Creat cu Webnode
Creați un site gratuit! Acest site a fost realizat cu Webnode. Creați-vă propriul site gratuit chiar azi! Începeți