logo

C에서 하위 문자열 가져오기

문자열이 주어지면 str 그리고 포스 그리고 오직 하위 배열의 시작과 길이를 정의합니다. 작업은 크기의 하위 문자열을 생성하는 것입니다. 오직 인덱스부터 시작해서 포스 .

하위 문자열 문자열 내의 연속된 문자 시퀀스입니다.



배열 목록

예:

입력: Str =the, 위치=1, len=2
산출:
설명: 하위 문자열은 , t, h, e, th, he, the입니다.

입력: Str =괴짜, 위치=3, 길이=3
산출: 예를 들어
설명: 하위 문자열은 , g, e, e, k, s, ge, ee, ek, ks, gee, eek, ex, geek, eeks, geeks입니다.



접근하다: 아래 아이디어에 따라 문제를 해결할 수 있습니다.

문자 배열을 만들고 다음에서 시작하는 문자를 넣습니다. 포스 부분 문자열을 생성하기 위해 문자 배열에 추가합니다.

아이디어를 구현하려면 아래 단계를 따르십시오.



  • 부분문자열을 저장할 문자형 배열을 만듭니다.
  • 주어진 길이에 대해 주어진 위치에서 반복하여 필요한 하위 문자열을 생성합니다.
    • 그런 다음 각 문자를 문자 배열에 저장하고 하위 문자열을 인쇄합니다.

더 나은 이해를 위해 아래 그림을 따르십시오.

삽화:

문자열을 고려해보세요 str=abcde , 위치 = 2 , 만 = 3 .

=> i = 2에서 우리의 ans = .

=> i = 3이면 문자는 'd'입니다.
따라서 답에 'd'를 추가하세요.
우리의 세월 = CD

=> i = 4일 때 문자는 'e'입니다.
따라서 답에 'e'를 추가하세요.
시간 답변 = CDE .

아래는 위의 접근 방식을 구현한 것입니다.

반응 테이블


공장 디자인 패턴



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

시간 복잡도: 에 대한
보조 공간: 에 대한

C에서 strncpy() 함수 사용

C에서 strncpy() 함수를 사용하여 주어진 입력 문자열에서 하위 문자열을 복사할 수도 있습니다. 대상 문자열, 소스 문자열, 시작 인덱스, 복사해야 하는 하위 문자열 길이 등 3개의 매개변수를 사용합니다.

자바는 다음을 가지고

통사론:

strncpy(destination_string,input_string+pos,len);

여기 포스 시작 인덱스이고 오직 복사하려는 하위 문자열의 길이입니다.

다음은 위의 접근 방식에 대한 코드입니다.

icloud 사진을 안드로이드로




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

시간 복잡도: 에 대한
보조 공간: 에 대한