logo

Verkrijg een subtekenreeks in C

Gegeven een touwtje str En pos En alleen dat het begin en de lengte van de subarray definieert. De taak is om een ​​subtekenreeks van grootte te genereren alleen beginnend bij de index pos .

A subtekenreeks is een aaneengesloten reeks tekens binnen een string.



toevoegen aan een array java

Voorbeelden:

Invoer: Str =de, pos=1, len=2
Uitgang: e
Uitleg: substrings zijn: , t, h, e, th, he, the.

Invoer: Str =nerds, pos=3, lengte=3
Uitgang: bijv
Uitleg: substrings zijn: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.



Benadering: Het probleem kan worden opgelost door het onderstaande idee te volgen:

Maak een karakterarray en plaats de karakters vanaf pos naar de karakterarray om de subtekenreeks te genereren.

Volg de onderstaande stappen om het idee te implementeren:



  • Maak een karakterarray om de subtekenreeks op te slaan.
  • Herhaal vanaf de gegeven positie voor de gegeven lengte om de vereiste subtekenreeks te genereren.
    • Sla vervolgens elk teken op in de tekenarray en druk de subtekenreeks af.

Volg de onderstaande afbeelding voor een beter begrip.

Illustratie:

Denk aan een touwtje str=abcde , pos = 2 , alleen = 3 .

=> Bij i = 2 onze ans = C .

=> Bij i = 3 is het teken ‘d’.
Voeg dus ‘d’ toe aan het antwoord.
Onze jaren = CD

=> Bij i = 4 is het teken ‘e’.
Voeg dus ‘e’ toe aan het antwoord.
Uur ans = cd .

Hieronder vindt u de implementatie van bovenstaande aanpak.

C

lijst als array


java-string concat



// 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; }>

>

>

Uitvoer

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

Tijdcomplexiteit: Over
Hulpruimte: Over

De functie strncpy() gebruiken in C

We kunnen ook de functie strncpy() in C gebruiken om de subtekenreeks van een bepaalde invoertekenreeks te kopiëren. Er zijn 3 parameters nodig: de bestemmingsreeks, de bronreeks, de startindex en de lengte van de subtekenreeks die we moeten kopiëren.

Windows-opdracht arp

Syntaxis:

strncpy(bestemmingsreeks,invoerreeks+pos,len);

Hier pos is de startindex en alleen is de lengte van de subtekenreeks die we willen kopiëren.

Hieronder vindt u de code voor de bovenstaande aanpak.

C

css vetgedrukt




// 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.>

>

>

Uitvoer

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

Tijdcomplexiteit: Over
Hulpruimte: Over