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
.
int IndexOf(char s[] , char ch) { int i = 0; while(s[i]!='\0') { if(s[i]==ch) return i; i++; } return -1; } int LastIndexOf(char s[] , char ch) { int i = 0 , poz = -1; while(s[i]!='\0') { if(s[i]==ch) poz=i; i++; } return poz; } int NthIndex(char s[] , char ch , int k) { int i = 0 , poz = -1; while(s[i]!='\0') { if(s[i]==ch) { k--; if(k == 0) poz = i; } i++; } return poz; }