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