>백엔드 개발 >C++ >단어 수에 따라 문자열 반전

단어 수에 따라 문자열 반전

WBOY
WBOY앞으로
2023-09-03 15:09:06972검색

단어 수에 따라 문자열 반전

문자열 조작은 텍스트 데이터를 효율적으로 처리하고 분석하는 데 도움이 되는 프로그래밍의 필수 기술입니다. C++는 풍부한 문자열 조작 함수 및 개체 세트를 제공하여 텍스트 데이터 작업을 더 쉽게 만듭니다.

이 글에서는 C++에서 단어 수에 따라 문자열을 뒤집는 방법에 대해 설명합니다.

방법

접근법 1 − 문자열 스트림 및 벡터 사용

방법 2 - 하위 문자열 및 문자열 조작 기능 사용

구문

C++의 문자열 개체: std::string 클래스는 C++ 표준 라이브러리의 일부이며 다양한 문자열 조작 기능을 제공합니다.

문자열 조작 함수: C++의 일부 일반적인 문자열 조작 함수에는 length(), substr(), find(), eras() 및 replacement()가 있습니다.

으아아아

접근 방법 1:- 문자열 스트림 및 벡터 사용

코드에 사용되는 이 접근 방식은 문자열 스트림 객체를 사용하여 입력 문자열을 단어 시퀀스로 변환하는 작업을 포함합니다. 그런 다음 단어는 스트림에서 하나씩 추출되어 벡터로 표시되는 문자열 컬렉션에 저장됩니다.

이후, 알고리즘 라이브러리의 역방향 기능을 사용하여 단어 모음이 역전됩니다. 그런 다음 역전된 단어가 결합되어 최종 출력 문자열을 형성하며, 마지막 단어를 제외한 각 단어 뒤에 공백이 추가됩니다.

알고리즘

  • 시작

  • 입력 문자열을 가져옵니다.

  • 입력 문자열에서 문자열 스트림을 만듭니다.

  • 단어를 저장하려면 빈 벡터를 초기화하세요.

  • 문자열 스트림을 통해 반복적으로 단어를 추출합니다.

  • 문자열 스트림에서 단어를 추출합니다.

  • 추출된 단어를 벡터에 밀어 넣습니다.

  • 단어가 포함된 벡터를 뒤집습니다.

  • 빈 출력 문자열을 초기화합니다.

  • 벡터를 역방향으로 탐색하여 출력 문자열을 형성합니다.

  • 역방향 벡터의 각 단어를 출력 문자열에 추가하고 그 뒤에 공백을 추가합니다.

  • 출력 문자열에서 마지막 공백을 제거하세요.

  • 출력 문자열을 반환합니다.

코드는 지정된 문자열의 단어 시퀀스를 반전시키는 절차를 구현합니다. 이는 먼저 문자열 스트림 개체를 활용하여 입력 문자열을 단어 기반 스트림으로 변환한 후 단어를 한 번에 하나씩 추출하여 수행됩니다. 그런 다음 알고리즘 라이브러리의 역방향 함수를 사용하여 벡터를 역전시킵니다. 마지막으로 반전된 단어가 결합되어 마지막 단어를 제외한 각 단어 뒤에 공백이 삽입된 최종 출력 문자열을 형성합니다. 그런 다음 출력 문자열에서 공백이 삭제되어 문자열 스트림, 벡터 및 알고리즘 라이브러리와 같은 표준 라이브러리 기능을 최대한 활용하는 컴팩트하고 이해하기 쉬운 솔루션을 렌더링합니다.

으아아아

Output

의 중국어 번역은

Output

입니다. 으아아아

방법 2: 하위 문자열 및 문자열 조작 함수 사용

방법 2는 문자열의 단어 순서를 바꾸는 또 다른 솔루션입니다. 방법 1과 같이 문자열 스트림과 벡터를 사용하는 대신 하위 문자열과 문자열 조작 함수를 사용합니다.

이 접근 방식에는 입력 문자열을 개별 단어를 나타내는 하위 문자열로 수동으로 나누는 작업이 포함됩니다. 하위 문자열은 역순으로 연결되어 최종 출력 문자열을 형성합니다.

알고리즘

  • 시작

  • 입력 문자열을 가져옵니다.

  • 입력 문자열에서 단어의 시작 및 끝 위치를 저장하는 데 사용되는 두 개의 size_t 변수 start 및 end를 초기화합니다.

  • 시작 위치를 0으로 초기화하세요.

  • 입력 문자열에서 첫 번째 공백의 위치를 ​​찾아 end 변수에 저장합니다.

  • 빈 출력 문자열을 초기화합니다.

  • 입력 문자열을 반복하고 하위 문자열을 사용하여 단어를 추출합니다.

  • 시작 위치에서 끝 위치까지 하위 문자열을 추출합니다.

  • 출력 문자열 앞에 추출된 하위 문자열을 연결하고 그 뒤에 공백을 추가합니다.

  • 시작 위치를 끝 위치 이후의 위치로 업데이트하세요.

  • 새 시작 위치에서 시작하는 입력 문자열에서 다음 공백을 찾아 끝 위치를 업데이트하세요.

  • 사이클이 끝나면

  • 을 사용하세요.

Example

The code is a solution for reversing the order of words in a given string. It does this by dividing the input string into substrings using the find function and concatenating these substrings in reverse order to form the output string. The last space character is then removed from the output string using the pop_back function. This approach is more manual and low-level compared to Approach 1 and requires a deeper understanding of string manipulation. The code takes a given input string, divides it into substrings, reverses the order of these substrings, and returns the final output string.

#include <iostream>
#include <string>

std::string reverseStringByWords(const std::string& input) {
   size_t start = 0;
   size_t end = input.find(' ');
   std::string output;

   while (end != std::string::npos) {
      output = input.substr(start, end - start) + " " + output;
      start = end + 1;
      end = input.find(' ', start);
   }
    
   output = input.substr(start) + " " + output;
   output.pop_back(); // Remove the last space
   return output;
}

int main() {
   std::string input = "Hello, how are you?";
   std::string output = reverseStringByWords(input);
   std::cout << "Input: " << input << std::endl;
   std::cout << "Output: " << output << std::endl;

   return 0;
}

Output

的中文翻译为:

输出

Input: Hello, how are you?
Output: you? are how Hello,

结论

在编程中字符串操作的重要性:掌握字符串操作技术对于任何程序员来说都是至关重要的,因为文本数据在软件开发中无处不在。理解各种字符串操作的方法可以帮助开发人员编写更高效、可维护和健壮的代码。

위 내용은 단어 수에 따라 문자열 반전의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

관련 기사

더보기