Răspuns :
► Functie :
int strToNumber(char* s) {
char* end = s + strlen(s)-1;
long n = strtol(s, &end, 10);
return n * n;
}
► Program test :
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int strToNumber(char* s) {
char* end = s + strlen(s)-1;
long n = strtol(s, &end, 10);
return n * n;
}
int main() {
char a[] = "10";
char b[] = "15";
char c[] = "-736";
cout << strToNumber(a) << endl;
cout << strToNumber(b) << endl;
cout << strToNumber(c) << endl;
}
► Explicatie :
Pentru a face viata mai usoara vom folosi functia strtol predefinita pentru a extrage numarul reprezentat in sirul de caractere. Functia se afla in biblioteca <cstdlib> si se foloseste astfel :
- Primul parametru reprezinta pointer catre caracterul care contine prima cifra din numar.
- Al doilea parametru reprezinta pointer catre caracterul cu ultima cifra.
- Al treilea parametru reprezinta baza.
- Functia returneaza un long care reprezinta numarul dat in sirul de caractere.