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

Se dă un șir de caractere. Sa se determine numărul scris cu cifrele existente în șirul dat. Să se afișeze numărul obținut și, pe linia următoare, toate caracterele din șir care nu fac parte din număr, cu excepția spațiilor


IamAlexxD: Deci sirul tau este de forma asta: "abr23cdr .add5 lsf;9", iar tu trebuie sa determini, mai exact sa afisezi numarul 2359, apoi caracterele: a b r c d r . a d d l s f ; si spatiul ? Te intreb fiindca nu sunt sigur de ceea ce am inteles din problema.

Răspunsuri la întrebare

Răspuns de jarvan4eu
1

Răspuns:

#include<iostream>

using namespace std;

int main()

{

int n,nbr=0,j=0; // declaram variabilele, n - numar de caractere pt sir, nbr - aici stocam numarul, j - contor pentru caractere

cout << "Introduceti numarul de caractere : ";

cin >> n; // citim numarul de caractere

char *m = new char[n]; // declaram vectorul in care vom citi sirul

char* v = new char[n]; // declaram vectorul in care vom pune literele (presupunem ca tot sirul este litere d-asta il declaram cu n)

cin.ignore(256, '\n'); // ignoram enter-ul de la citirea lui N pentru a putea folosi getline sa luam sirul cu tot cu spatiu

cout << "Introduceti textul : ";

cin.getline(m,n+1); // citim textul

for (int i = 0; i < n; i++) // trecem prin sir

{

 if (m[i] >= '0' && m[i] <= '9') // daca caracterul curent este intre 0 si 9 (adica este cifra)

 {

  nbr = nbr * 10 + m[i]-'0'; // adunam cifra la numarul nostru

 }

 else if (m[i] != ' ') // altfel daca nu este spatiu inseamna ca este litera sau semn de punctuatie

 {

  v[j] = m[i]; // o adaugam la sirul nostru pt caractere

  j++; // crestem contorul

 }

}

cout << "Numarul format este " << nbr << endl; // afisam numarul

cout << "Caracterele sunt : ";

for (int i = 0; i < j; i++) // afisam sirul

{

 cout << v[i] << ' ';

}

}

Explicație:

Am comentat pe cod ca sa intelegi mai usor.

Alte întrebări interesante