문자열이 주어지면 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>
시간 복잡도: 에 대한
보조 공간: 에 대한