👤
a fost răspuns

AJUTOR URGENT AM TEST!!!!!!!!!!

Cerința

Se dau trei numere naturale n, k și p și n șiruri formate din litere mici ale alfabetului englez. Înlocuiți a k-a literă din fiecare șir cu a p-a literă din alfabet. Dacă șirul are mai puțin de k litere se va scrie oglinditul lui.


Date de intrare

Pe prima linie a fișierului schimb.in se află trei numere naturale n, k și p. Pe următoarele n linii se află n șiruri.


Date de ieșire

În fișierul schimb.out se vor scrie noile șiruri, fiecare pe un rând nou.


Restricții și precizări

1 ≤ n, k ≤ 10000

1 ≤ p ≤ 26

șirurile au cel mult 500 de caractere


Problema 1580 de pe pbinfo


Răspuns :

Răspuns:

#include <iostream>

#include <cstring>

#include <fstream>

using namespace std;

ifstream f("schimb.in");

ofstream g("schimb.out");

char s[502], ch, t[502];

short n,k,p,i, len, cod;

void ogl(char s[], short len)

{

  for (short j=0; j<len/2; ++j)

     swap(s[j],s[len-1-j]);

}

int main()

{

   f >> n >> k >> p;

   f.get();

   for (i=1; i<=n; ++i)

   {

       f >> s; f.get();

       len=strlen(s);

       cout << len << "\n";

       cod=97+p-1; ch=(char)cod;

       if (len<k)

           { ogl(s,len); g << s << "\n"; }

       else

       {

           s[k-1]=ch;

           g << s << "\n";

       }

   }

}

Explicație: