Biorąc pod uwagę ciąg ul I poz I tylko który definiuje początek i długość podtablicy. Zadanie polega na wygenerowaniu podciągu o rozmiarze tylko zaczynając od indeksu poz .
A podciąg jest ciągłą sekwencją znaków w ciągu ciągu.
tablica c ciąg
Przykłady:
Wejście: Str = the, poz = 1, dł. = 2
Wyjście: t
Wyjaśnienie: podciągami będą: , t, h, e, th, on, the.Wejście: Str = maniacy, pozycja = 3, długość = 3
Wyjście: np
Wyjaśnienie: podciągi to: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.
Zbliżać się: Problem można rozwiązać według poniższego pomysłu:
Utwórz tablicę znaków i umieść znaki zaczynając od poz do tablicy znaków w celu wygenerowania podciągu.
Aby wdrożyć pomysł, wykonaj poniższe kroki:
- Utwórz tablicę znaków do przechowywania podciągu.
- Wykonaj iterację od podanej pozycji dla danej długości, aby wygenerować wymagany podciąg.
- Następnie zapisz każdy znak w tablicy znaków i wydrukuj podciąg.
Aby lepiej zrozumieć, postępuj zgodnie z poniższą ilustracją.
Ilustracja:
Rozważmy ciąg str=abcde , poz. = 2 , tylko = 3 .
=> O i = 2 nasze odpowiedzi = C .
=> Przy i = 3 znakiem jest „d”.
Dodaj więc „d” do odpowiedzi.
Nasze lata = płyta CD=> Przy i = 4 znakiem jest „e”.
Dodaj więc „e” do odpowiedzi.
Godzina odp = CD .
Poniżej implementacja powyższego podejścia.
C
sprawdź wersję Java na Linuksie
zamiana pamięci
// 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; }> |
>
>Wyjście
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Złożoność czasowa: O
Przestrzeń pomocnicza: O
Używanie funkcji strncpy() w C
Możemy również użyć funkcji strncpy() w C, aby skopiować podciąg z danego ciągu wejściowego. Pobiera 3 parametry, którymi są ciąg docelowy, ciąg źródłowy wraz z indeksem początkowym i długością podciągu, który musimy skopiować.
aktor Ranbir Kapoor wiek
Składnia:
strncpy(ciąg_docelowy, ciąg_wejściowy+pos, len);
Tutaj poz jest indeksem początkowym i tylko to długość podciągu, który chcemy skopiować.
Poniżej znajduje się kod powyższego podejścia.
C
tablica js
// 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.> |
>
>Wyjście
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Złożoność czasowa: O
Przestrzeń pomocnicza: O