>백엔드 개발 >C++ >C에서 strtok()을 사용하여 std::string을 토큰화하려면 어떻게 해야 합니까?

C에서 strtok()을 사용하여 std::string을 토큰화하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-08 16:19:02698검색

How can I tokenize a std::string using strtok() in C  ?

strtok()을 사용하여 std::string 토큰화

C로 작업할 때 문자열을 토큰화하여 문자열을 더 작은 하위 문자열이나 토큰으로 분할하는 것이 바람직한 경우가 많습니다. 구분 기호. C 함수 strtok()는 문자열을 토큰화하는 데 널리 사용되는 옵션이지만 char* 입력이 필요한 반면 std::string은 C에서 선호되는 문자열 유형입니다. 이 기사에서는 std::string에서 strtok()를 사용하는 해결 방법을 살펴봅니다.

토큰화를 위해 Istringstream 사용

한 가지 접근 방식은 istringstream 개체를 사용하여 std::string을 다음으로 변환하는 것입니다. strtok()에 의해 토큰화될 수 있는 문자 스트림입니다. 예:

#include <iostream>
#include <string>
#include <sstream>

int main() {
    std::string myText("some-text-to-tokenize");
    std::istringstream iss(myText);
    std::string token;

    while (std::getline(iss, token, '-')) {
        std::cout << token << std::endl;
    }

    return 0;
}

이 예에서 istringstream iss는 std::string myText에서 구성됩니다. 그런 다음 std::getline 함수는 구분 문자 '-'를 구분 기호로 사용하여 스트림에서 토큰을 추출하는 데 사용됩니다. 각 토큰은 std::cout을 사용하여 콘솔에 인쇄됩니다.

대체 접근 방식

응답에 언급된 또 다른 옵션은 보다 유연한 토큰화 기능을 제공하는 Boost 라이브러리를 사용하는 것입니다. 하지만 이 솔루션을 사용하려면 시스템에 Boost 라이브러리를 설치해야 합니다.

위 내용은 C에서 strtok()을 사용하여 std::string을 토큰화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.