logo

C++의 하위 문자열

부분 문자열 함수는 다음과 같은 문자열 작업을 처리하는 데 사용됩니다. 깨진() , 추가() , 등 . 이 개체의 하위 문자열 복사본으로 초기화된 값을 사용하여 새 문자열을 생성합니다. C++에서 std::substr(), 문자열 함수에 필요한 헤더 파일은 다음과 같습니다. .

하위 문자열 함수는 두 개의 값을 사용합니다. 포스 그리고 오직 인수로 사용하고 해당 값이 이 개체의 하위 문자열 복사본으로 초기화된 새로 구성된 문자열 개체를 반환합니다. 문자열 복사는 다음에서 시작됩니다. 포스 그리고 완료될 때까지 포스트+렌 [pos, pos+len)을 의미합니다.

통사론:



string substr (size_t pos, size_t len) const;>

매개변수:

  • 위치: 복사할 첫 번째 문자의 위치입니다.
  • 오직: 하위 문자열의 길이입니다.
  • 크기_t: 부호 없는 정수 계열 형식입니다.

반환 값: 문자열 객체를 반환합니다.

예:

HTML에서 js 함수 호출
C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s1 = 'Geeks';  // Copy two characters of s1 (starting  // from position 3)  string r = s1.substr(3, 2);  // prints the result  cout << 'String is: ' << r;  return 0; }>

산출
String is: ks>
  • 시간 복잡도: 에)
  • 보조 공간: 에)

더 많은 예:

string: '  h e l l o w o r l d  ' index: 0 1 2 3 4 5 6 7 8 9 10>

우리가 쓴다면: –

스피커가 뭐야?
  • s.substr(s.begin(),3) => 컴파일 오류(반복자를 int 데이터 유형으로 변환할 수 없기 때문에)
  • s.substr(2,3) => llo(두 번째 색인의 세 글자)
  • s.substr(*s.begin()-s[0],3) => hel (*s.begin()은 'h'이고 'h'-s[0]=> 'h'-'h'=0은 substr(0,3)을 의미합니다 —– 0번째 인덱스에서 세 글자
  • s.substr(5,1) => ' ' (5번째 인덱스에 공백을 인쇄합니다)
  • s.substr(2,0) => (출력되지 않음) (두 번째 인덱스에서 문자 0개 선택)

기억해야 할 중요한 사항

  1. 첫 번째 문자의 인덱스는 0(1이 아님)입니다.
  2. 만약에 포스 문자열 길이와 같으면 함수는 빈 문자열을 반환합니다.
  3. 만약에 포스 문자열 길이보다 크면 out_of_range가 발생합니다. 이런 일이 발생하면 문자열에는 변경 사항이 없습니다.
  4. 요청된 하위 문자열인 경우 오직 문자열 크기보다 크면 반환된 하위 문자열은 다음과 같습니다. [위치, 크기()) .
  5. 만약에 오직 매개변수로 전달되지 않은 경우 반환된 하위 문자열은 다음과 같습니다. [위치, 크기()).

하위 문자열의 응용

  • 문자 뒤의 하위 문자열 가져오기
  • 문자 앞에 하위 문자열 가져오기
  • 주어진 문자열의 모든 하위 문자열을 인쇄합니다.
  • 숫자를 나타내는 문자열의 모든 하위 문자열 합계
  • 숫자를 나타내는 문자열의 모든 하위 문자열의 최대값을 인쇄합니다.
  • 숫자를 나타내는 문자열의 모든 하위 문자열의 최소값을 인쇄합니다.

문자 뒤의 하위 문자열 가져오기

여기에는 문자열과 문자가 제공되며 해당 문자 뒤에 하위 문자열을 인쇄해야 합니다.
이후의 모든 항목을 추출합니다. : 문자열에 개:고양이 .

예:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s = 'dog:cat';  // Find position of ':' using find()  int pos = s.find(':');  // Copy substring after pos  string sub = s.substr(pos + 1);  // prints the result  cout << 'String is: ' << sub;  return 0; }>

산출
String is: cat>

시간 복잡도: 에)

보조 공간: 에)

문자 앞에 부분 문자열을 얻는 방법은 무엇입니까?

여기에는 문자열과 문자가 제공되며 해당 문자 뒤에 하위 문자열을 인쇄해야 합니다.

예:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s = 'dog:cat';  // Find position of ':' using find()  int pos = s.find(':');  // Copy substring before pos  // Extract everything before the ':' in the string  // 'dog:cat'.  string sub = s.substr(0, pos);  // prints the result  cout << 'String is: ' << sub;  return 0; }>

산출
String is: dog>

시간 복잡도: 에)

보조 공간: 에)

주어진 문자열의 모든 하위 문자열을 인쇄하는 방법은 무엇입니까?

문자열을 입력으로 제공합니다. 주어진 문자열의 비어 있지 않은 부분 문자열을 모두 인쇄하는 프로그램을 작성해야 합니다.

예:

텍스트 래퍼 CSS
C++
// C++ program to demonstrate all possible // substrings of a given string #include  using namespace std; // Function to print all sub strings void subString(string s, int n) {  // Pick starting point in outer loop  // and lengths of different strings for  // a given starting point  for (int i = 0; i < n; i++)  for (int len = 1; len <= n - i; len++)  cout << s.substr(i, len) << endl; } // Driver program to test above function int main() {  string s = 'abcd';  subString(s, s.length());  return 0; }>

산출
a ab abc abcd b bc bcd c cd d>

시간 복잡도: )

보조 공간: 오(1)

숫자를 나타내는 문자열의 모든 하위 문자열의 합계를 인쇄합니다.

문자열로 표현된 정수가 주어지면 이 문자열의 가능한 모든 하위 문자열의 합계를 구해야 합니다.

예:

C++
// C++ program to print sum of all possible substring of // a number represented as a string #include  using namespace std; // Utility method to convert character digit to // integer digit int toDigit(char ch) { return (ch - '0'); } // Returns sum of all substring of num int sumOfSubstrings(string s) {  vector V;  int n = s.length();  for (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  int res = accumulate(v.begin(), v.end(), 0);  return res; } // Driver code to test above methods int main() {  string num = '1234';  cout << sumOfSubstrings(num) << endl;  return 0; }>

산출
1670>

시간 복잡도: )
보조 공간: 에)

연결을 얻다

숫자를 나타내는 문자열의 모든 하위 문자열의 최대값을 인쇄합니다.

문자열로 표현된 정수가 주어지면 숫자를 나타내는 주어진 문자열의 가능한 모든 부분 문자열의 최대값을 얻어야 합니다.

예:

C++
// C++ program to demonstrate max. of all possible // substrings of a given string #include  using namespace std; void subString(string s, int n) {  vector V;  for (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  cout << *max_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() {  string s = '823';  subString(s, s.length());  return 0; }>

산출
823>

설명: 모든 하위 문자열은 { 8, 82, 823, 2, 23, 3 }이며 하위 문자열의 최대값은 823입니다.

시간 복잡도: )

보조 공간: 에!)

숫자를 나타내는 문자열의 모든 부분 문자열의 최소값을 인쇄합니다.

문자열로 표현된 정수가 주어지면 숫자를 나타내는 주어진 문자열의 가능한 모든 부분 문자열의 최소값을 얻어야 합니다.

예:

리눅스에서 디렉토리 이름 바꾸기
C++
// C++ program to demonstrate minimum of all possible // substrings of a given string #include  using namespace std; void subString(string s, int n) {  vector V;  for (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  cout << *min_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() {  string s = '4572';  subString(s, s.length());  return 0; }>

산출
2>

시간 복잡도: )
보조 공간: 에!)

부분 문자열의 다른 응용

  • 텍스트 검색: 하위 문자열은 더 큰 텍스트 본문에서 단어나 구를 검색하는 데 사용됩니다. 이는 사용자가 문구나 키워드를 입력하면 엔진이 해당 하위 문자열을 포함하는 모든 일치 항목을 검색하는 검색 엔진에서 일반적으로 사용됩니다.
  • 텍스트 분석: 하위 문자열은 텍스트 구문 분석 알고리즘에서 더 큰 문자열을 더 작은 덩어리로 나누는 데 사용됩니다. 예를 들어, 구문 분석기를 사용하여 문장에서 개별 단어를 추출하고 이를 데이터 구조에 저장할 수 있습니다.
  • 텍스트 조작: 하위 문자열은 텍스트 조작 응용 프로그램에서 더 큰 텍스트 본문에서 특정 단어나 구를 찾고 바꾸는 데 사용됩니다. 검색 및 바꾸기 작업을 수행하거나 문서의 정보를 업데이트하는 데 사용할 수 있습니다.
  • 자연어 처리: 부분 문자열은 자연어 처리 알고리즘에서 단어와 구를 식별하는 데 사용됩니다. 이는 알고리즘이 사용자가 말한 단어를 식별해야 하는 음성 인식과 같은 애플리케이션에 사용됩니다.
  • 패턴 인식: 하위 문자열은 패턴 인식 알고리즘에서 데이터의 패턴을 식별하는 데 사용됩니다. 이를 통해 금융 데이터의 추세를 파악하거나 이미지의 이상 징후를 감지하는 데 사용할 수 있습니다.
  • 비밀번호 보안: 하위 문자열은 비밀번호를 확인하는 데 사용됩니다. 이는 입력된 비밀번호를 원래 비밀번호의 저장된 하위 문자열과 비교하여 수행됩니다. 두 개가 일치하면 비밀번호가 확인됩니다. 이 기술은 보안을 강화하기 위해 많은 응용 프로그램에서 사용됩니다.