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:
#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;
}