Cerința
Definiți următoarele funcții:
int IndexOf(char s[], char ch) int LastIndexOf(char s[], char ch) int NthIndex(char s[], char ch, int k)
Funcția IndexOf
primește ca parametri un șir de caractere s
și un caracter ch
și returnează cea mai din stânga poziție unde se găsește ch
în șir, sau returnează -1
dacă ch
nu apare în șir.
Funcția LastIndexOf
primește ca parametri un șir de caractere s
și un caracter ch
și returnează cea mai din dreapta poziție unde se găsește ch
în șir, sau returnează -1
dacă ch
nu apare în șir.
Funcția NthIndex
primește ca parametri un șir de caractere s
, un caracter ch
și un număr întreg k
. Presupunând că ch
apare de n
ori în șir, atunci, dacă 1 ≤ k ≤ n
, funcția returnează poziția unde caracterul ch
apare a k
-a oară. În caz contrar, funcția returnează -1
.
Restricții și precizări
5 ≤ lungimea șirului ≤ 250
- Șirul
s
este indexat de la0
.
Exemplu
Dacă s = "Ana are mere"
, atunci IndexOf(s, 'a') = 2
, LastIndexOf(s, 'e') = 11
, NthIndex(s, 'e', 20) = -1
(Caracterul e
nu apare de 20
de ori în s
), iar NthIndex(s, 'e', 2) = 9
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Search :
int IndexOf(char s[], char ch)
{
for (int i = 0; s[i]; i++)
if (s[i] == ch) return i;
return -1;
}
int LastIndexOf(char s[], char ch)
{
int p = -1;
for (int i = 0; s[i]; i++)
if (s[i] == ch) p = i;
return p;
}
int NthIndex(char s[], char ch, int k)
{
if (k <= 0) return -1;
for (int i = 0; s[i]; i++)
if (s[i] == ch)
{
k--;
if (k == 0) return i;
}
return -1;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2664 Search
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2664 Search de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!