Daný reťazec str a poz a len ktorý definuje začiatok a dĺžku podpola. Úlohou je vygenerovať podreťazec veľkosti len počnúc indexom poz .
A podreťazec je súvislá postupnosť znakov v rámci reťazca.
formát reťazca
Príklady:
Vstup: Str = the, poz=1, len=2
Výkon: th
Vysvetlenie: podreťazce budú: , t, h, e, th, on, the.Vstup: Str = geeks, poz=3, dĺžka=3
Výkon: napr
Vysvetlenie: podreťazce sú: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.
Prístup: Problém je možné vyriešiť podľa nasledujúcej myšlienky:
Vytvorte pole znakov a vložte znaky začínajúce od poz do poľa znakov, aby sa vygeneroval podreťazec.
Pri implementácii myšlienky postupujte podľa nasledujúcich krokov:
- Vytvorte pole znakov na uloženie podreťazca.
- Iterujte z danej pozície pre danú dĺžku, aby ste vygenerovali požadovaný podreťazec.
- Potom uložte každý znak do poľa znakov a vytlačte podreťazec.
Pre lepšie pochopenie postupujte podľa nižšie uvedeného obrázku.
Ilustrácia:
Zvážte reťazec str=abcde , pozícia = 2 , len = 3 .
=> Pri i = 2 naše ans = c .
=> Pri i = 3 je znak „d“.
Takže k odpovedi pridajte „d“.
Naše roky = cd=> Pri i = 4 je znak „e“.
Takže k odpovedi pridajte „e“.
Hodina = cde .
Nižšie je uvedená implementácia vyššie uvedeného prístupu.
C
súrodenci kylie jenner
v porovnaní s metódou java
// C implementation of code> #include> #include> // Function to get substr in C> void> getString(> int> pos,> int> len,> int> c,> char> string[])> {> > char> substring[1000];> > while> (c substring = string[pos + c - 1]; c++; } substring = ' '; // Print the result printf(substring); printf('
'); return 0; } // Driver code int main() { int pos, len, c = 0; // Testcase1 char string[14] = 'geeksforgeeks'; // Initialize pos, len i.e., starting // index and len upto which we have to // get substring respectively. pos = 6; len = 5; printf('String: %s ', string); printf('
substring is: '); // Function call getString(pos, len, c, string); // Testcase2 char string2[5] = 'abcde'; pos = 1; len = 3; c = 0; printf('
String: %s ', string2); printf('
substring is: '); // Function call getString(pos, len, c, string2); return 0; }> |
>
>Výkon
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Časová zložitosť: O(len)
Pomocný priestor: O(len)
Použitie funkcie strncpy() v C
Na skopírovanie podreťazca z daného vstupného reťazca môžeme použiť aj funkciu strncpy() v jazyku C. Vyžaduje 3 parametre, ktorými sú cieľový reťazec, zdrojový reťazec spolu so začiatočným indexom a dĺžkou podreťazca, ktorý potrebujeme skopírovať.
latexová matrica
Syntax:
strncpy(cieľový_reťazec,vstupný_reťazec+pos,len);
Tu poz je počiatočný index a len je dĺžka podreťazca, ktorý chceme skopírovať.
Nižšie je uvedený kód pre vyššie uvedený prístup.
C
herec shweta tiwari
// C implementation of code> #include> #include> // Driver code> int> main()> {> > int> pos, len;> > // Testcase1> > char> string[14] => 'geeksforgeeks'> ;> > char> substring[14];> > // Initialize pos, len i.e., starting> > // index and len upto which we have to> > // get substring respectively.> > pos = 6;> > len = 5;> > printf> (> 'String: %s '> , string);> > printf> (> '
substring is: '> );> > // Using strncpy function to> > // copy the substring> > strncpy> (substring,string+(pos-1),len);> > printf> (substring);> > // Testcase2> > char> string2[5] => 'abcde'> ;> > char> substring2[5];> > > pos = 1;> > len = 3;> > printf> (> '
String: %s '> , string2);> > printf> (> '
substring is: '> );> > // Using strncpy function to> > // copy the substring> > strncpy> (substring2,string2+(pos-1),len);> > printf> (substring2);> > return> 0;> }> // This code is contributed by Pushpesh Raj.> |
>
>Výkon
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Časová zložitosť: O(len)
Pomocný priestor: O(len)