Informatică, întrebare adresată de mariamagdalena2269, 8 ani în urmă

DOAR FUNCTIA Să se scrie o funcţie numită strToNumber care primeşte un şir de caractere s şi returnează un număr egal cu pătratul numărului
reprezentat de şirul de caractere.
• Funcţia trebuie să se numească strToNumber.
• Funcţia trebuie să primească şir de caractere care poate avea maxim 8 caractere.
Funcţia va returna un număr întreg egal cu pătratul numărului reprezentat de şir.
.
Restricţii
**s va reprezenta un număr natural valid
**s va conţine maxim 8 cifre
Exemplu
char nr[] = "11";
cout << strToNumber(nr);//va afişa 121


GreenEyes71: Nu ai scris în ce limbaj de programare trebuie rezolvată cerința. De ce ?
mariamagdalena2269: Din neatentie…c++

Răspunsuri la întrebare

Răspuns de andrei750238
3

► 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.
Anexe:
Alte întrebări interesante