Dota virkne str un poz un tikai kas nosaka apakšgrupas sākumu un garumu. Uzdevums ir ģenerēt lieluma apakšvirkni tikai sākot no indeksa poz .
A apakšvirkne ir blakus esoša rakstzīmju secība virknē.
js masīvs
Piemēri:
Ievade: Str = the, poz = 1, len = 2
Izvade: th
Paskaidrojums: apakšvirknes būs: , t, h, e, th, he, the.Ievade: Str = geeks, pozīcija = 3, garums = 3
Izvade: piem
Paskaidrojums: apakšvirknes ir: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.
Pieeja: Problēmu var atrisināt, ievērojot šādu ideju:
Izveidojiet rakstzīmju masīvu un ievietojiet rakstzīmes, sākot no poz rakstzīmju masīvam, lai ģenerētu apakšvirkni.
Lai īstenotu ideju, veiciet tālāk norādītās darbības.
- Izveidojiet rakstzīmju masīvu, lai saglabātu apakšvirkni.
- Atkārtojiet no dotās pozīcijas norādītajam garumam, lai ģenerētu nepieciešamo apakšvirkni.
- Pēc tam saglabājiet katru rakstzīmi rakstzīmju masīvā un izdrukājiet apakšvirkni.
Izpildiet tālāk sniegto ilustrāciju, lai labāk izprastu.
Ilustrācija:
e-r modeļa diagramma
Apsveriet virkni str=abcde , pozīcija = 2 , tikai = 3 .
=> Pie i = 2 mūsu ans = c .
=> Ja i = 3, rakstzīme ir “d”.
Tāpēc atbildei pievienojiet 'd'.
Mūsu gadi = cd=> Ja i = 4, rakstzīme ir “e”.
Tāpēc atbildei pievienojiet 'e'.
Stunda ans = cde .
Zemāk ir aprakstīta iepriekš minētās pieejas īstenošana.
C
gimp fontu saraksts
// 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; }> |
>
>Izvade
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Laika sarežģītība: Par
Palīgtelpa: Par
Izmantojot funkciju strncpy () programmā C
Mēs varam arī izmantot funkciju strncpy () programmā C, lai kopētu apakšvirkni no dotās ievades virknes. Tam nepieciešami 3 parametri, kas ir mērķa virkne, avota virkne, sākuma indekss un apakšvirknes garums, kas mums ir jākopē.
Sintakse:
strncpy(galamērķa_virkne,ievades_string+pos,len);
reaģēt inline stilā
Šeit poz ir sākuma indekss un tikai ir apakšvirknes garums, kuru mēs vēlamies kopēt.
Tālāk ir norādīts iepriekš minētās pieejas kods.
C
segmentācijas vainas kodols izmests
// 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.> |
>
>Izvade
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Laika sarežģītība: Par
Palīgtelpa: Par