Дано рядок вул і поз і тільки який визначає початок і довжину підмасиву. Завдання полягає в тому, щоб згенерувати підрядок розміру тільки починаючи з індексу поз .
А підрядок це безперервна послідовність символів у рядку.
ціле число в рядок
приклади:
введення: Str =, pos=1, len=2
Вихід: тис
Пояснення: підрядки будуть: , t, h, e, th, he, the.введення: Str = виродки, pos = 3, length = 3
Вихід: напр
Пояснення: підрядки: , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks.
Підхід: Проблему можна вирішити за такою ідеєю:
Створіть масив символів і вставте символи, починаючи з поз до масиву символів, щоб створити підрядок.
Для реалізації ідеї виконайте наступні кроки:
- Створіть масив символів для зберігання підрядка.
- Виконайте ітерацію з заданої позиції для заданої довжини, щоб створити необхідний підрядок.
- Потім збережіть кожен символ у масиві символів і надрукуйте підрядок.
Дотримуйтесь ілюстрації нижче для кращого розуміння.
Ілюстрація:
Розглянемо рядок str=abcde , позиція = 2 , тільки = 3 .
=> При i = 2 наш ans = в .
як сортувати список масивів у java=> При i = 3 символом є «d».
Тому додайте «d» до відповіді.
Наші роки = компакт-диск=> При i = 4 символом є «e».
Тому додайте «е» до відповіді.
Година ans = cde .
Нижче наведено реалізацію вищеописаного підходу.
C
// 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; }> |
первинний ключ складений ключ
>
>Вихід
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Часова складність: про
Допоміжні приміщення: про
Використання функції strncpy() у C
Ми також можемо використовувати функцію strncpy() у C, щоб скопіювати підрядок із заданого вхідного рядка. Він приймає 3 параметри: цільовий рядок, вихідний рядок разом із початковим індексом і довжиною підрядка, який нам потрібно скопіювати.
Синтаксис:
strncpy(destination_string,input_string+pos,len);
тут поз є початковим індексом і тільки це довжина підрядка, який ми хочемо скопіювати.
Нижче наведено код для описаного вище підходу.
статична java
C
картографування в машинописі
// 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.> |
>
>Вихід
String: geeksforgeeks substring is: forge String: abcde substring is: abc>
Часова складність: про
Допоміжні приміщення: про