logo

Získejte podřetězec v C

Daný řetězec str a poz a jen který definuje začátek a délku dílčího pole. Úkolem je vygenerovat podřetězec velikosti jen počínaje indexem poz .

A podřetězec je souvislá sekvence znaků v řetězci.



formát řetězce

Příklady:

Vstup: Str =the, pos=1, len=2
Výstup: čt
Vysvětlení: podřetězce budou: , t, h, e, th, on, the.

Vstup: Str = geekové, pozice=3, délka=3
Výstup: např
Vysvětlení: podřetězce jsou: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.



Přístup: Problém lze vyřešit podle následující myšlenky:

Vytvořte pole znaků a vložte znaky počínaje poz do pole znaků, aby se vygeneroval podřetězec.

Při realizaci nápadu postupujte podle následujících kroků:



  • Vytvořte pole znaků pro uložení podřetězce.
  • Iterujte z dané pozice pro danou délku a vygenerujte požadovaný podřetězec.
    • Poté uložte každý znak do pole znaků a vytiskněte podřetězec.

Pro lepší pochopení postupujte podle níže uvedeného obrázku.

Ilustrace:

smyčka java for

Zvažte řetězec str=abcde , pozice = 2 , jen = 3 .

=> Při i = 2 naše ans = C .

=> Při i = 3 je znak „d“.
Přidejte tedy k odpovědi „d“.
Naše léta = CD

=> Při i = 4 je znakem „e“.
Přidejte tedy k odpovědi „e“.
Hodina = cde .

Níže je uvedena implementace výše uvedeného přístupu.

C




první notebook
// 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ýstup

String: geeksforgeeks substring is: forge String: abcde substring is: abc>

Časová složitost: O(jen)
Pomocný prostor: O(jen)

Použití funkce strncpy() v C

Můžeme také použít funkci strncpy() v C ke zkopírování podřetězce z daného vstupního řetězce. Vyžaduje 3 parametry, kterými jsou cílový řetězec, zdrojový řetězec spolu s počátečním indexem a délkou podřetězce, který potřebujeme zkopírovat.

Syntax:

strncpy(cílový_řetězec,vstupní_řetězec+pos,len);

mapa na stroji

Tady poz je počáteční index a jen je délka podřetězce, který chceme zkopírovat.

Níže je uveden kód pro výše uvedený přístup.

C


historie verzí androidu



// 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ýstup

String: geeksforgeeks substring is: forge String: abcde substring is: abc>

Časová složitost: O(jen)
Pomocný prostor: O(jen)