logo

Få en delsträng i C

Givet ett snöre str och pos och endast som definierar start och längd på subarrayen. Uppgiften är att generera en delsträng av storlek endast från index pos .

A delsträng är en sammanhängande sekvens av tecken i en sträng.



nfa till dfa

Exempel:

Inmatning: Str =den, pos=1, len=2
Produktion: th
Förklaring: delsträngar kommer att vara: , t, h, e, th, he, the.

Inmatning: Str =nördar, pos=3, längd=3
Produktion: t.ex
Förklaring: delsträngar är: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.



Närma sig: Problemet kan lösas enligt följande idé:

Skapa en karaktärsuppsättning och sätt karaktärerna från pos till teckenmatrisen för att generera delsträngen.

Följ stegen nedan för att implementera idén:



  • Skapa en teckenuppsättning för att lagra delsträngen.
  • Iterera från den givna positionen för den givna längden för att generera den delsträng som krävs.
    • Lagra sedan varje tecken i teckenuppsättningen och skriv ut delsträngen.

Följ illustrationen nedan för en bättre förståelse.

Illustration:

Tänk på ett snöre str=abcde , pos = 2 , endast = 3 .

=> Vid i = 2 våra ans = c .

=> Vid i = 3 är tecknet 'd'.
Så lägg till 'd' till svaret.
Våra år = CD

=> Vid i = 4 är tecknet 'e'.
Så lägg till 'e' till svaret.
Timme och = cde .

Nedan är implementeringen av ovanstående tillvägagångssätt.

C

binärt träd vs bst


np prick



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

>

>

Produktion

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

Tidskomplexitet: Handla om
Extra utrymme: Handla om

Använder strncpy()-funktionen i C

Vi kan också använda strncpy()-funktionen i C för att kopiera delsträngen från en given inmatningssträng. Det krävs 3 parametrar som är destinationssträngen, källsträngen tillsammans med startindex och längden på delsträngen som vi behöver kopiera.

välj från flera tabeller i sql

Syntax:

strncpy(destination_string,input_string+pos,len);

Här pos är startindex och endast är längden på delsträngen som vi vill kopiera.

Nedan finns koden för ovanstående tillvägagångssätt.

C

bubblesort java




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

>

>

Produktion

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

Tidskomplexitet: Handla om
Extra utrymme: Handla om