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

Rezolvati urmatoarea problema in limbajul C++

Ionel și Petrică au inventat un procedeu de criptare a mesajelor. Cuvintele unei propoziții ei le scriau cu litere majuscule, iar între cuvinte scriau simbolul cratima. Cuvintele altei propoziții le scriau cu litere minuscule, iar între cuvinte scriau simbolul linia de jos. Apoi criptau mesajul scriind un singur text, preluând fragmente dintr-o propoziție, apoi din alta.
Fișierul text sirdat.txt conține pe o linie un șir de caractere ce reprezintă textul criptat.
Refaceți textul inițial astfel: înscrieți în fișierul sirrez.txt pe câte o linie câte un șir de caractere fără spații: pe prima linie șirul ce reprezintă propoziția formată din literele majuscule din șirul preluat din fișierul de intrare, iar pe a doua linie – a doua propoziție formată din literele minuscule din șirul preluat din fișierul de intrare.
Date de intrare: Fișierul text sirdat.txt conține pe o linie un șir de caractere fără spații.
Date de ieşire: Fișierul text sirrez.txt conţine pe fiecare linie câte un șir de caractere fără spații: pe prima linie șirul format din literele majuscule din șirul preluat din fișierul de intrare şi între cuvinte simbolul cratima, iar pe a doua linie șirul format din literele minuscule din șirul preluat din fișierul de intrare, iar între cuvinte simbolul linia de jos.
Exemplu:
Intrare: MnAoiM_cA-anPAtIaNE-m_AvLBoiA-oCOsACE
Ieşire: MAMA-PAINE-ALBA-COACE
noi_cantam_voios

Răspunsuri la întrebare

Răspuns de drysky24
0

Răspuns:

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int main() {

// Open the input file

ifstream fin("sirdat.txt");

// Check if the file was successfully opened

if (!fin) {

cout << "Error opening the input file." << endl;

return 1;

}

// Read the input string from the file

string str;

getline(fin, str);

// Close the input file

fin.close();

// Open the output file

ofstream fout("sirrez.txt");

// Check if the file was successfully opened

if (!fout) {

cout << "Error opening the output file." << endl;

return 1;

}

// Write the first decrypted string to the output file

for (int i = 0; i < str.size(); i++) {

if (str[i] >= 'A' && str[i] <= 'Z') {

fout << str[i];

if (str[i + 1] == '_' || str[i + 1] == '-') {

fout << ",";

}

}

}

// Write a new line to the output file

fout << endl;

// Write the second decrypted string to the output file

for (int i = 0; i < str.size(); i++) {

if (str[i] >= 'a' && str[i] <= 'z') {

fout << str[i];

if (str[i + 1] == '_' || str[i + 1] == '-') {

fout << "_";

}

}

}

// Close the output file

fout.close();

return 0;

}

Alte întrebări interesante