>백엔드 개발 >C++ >C의 쉼표로 구분된 문자열에서 정수를 효율적으로 추출하려면 어떻게 해야 합니까?

C의 쉼표로 구분된 문자열에서 정수를 효율적으로 추출하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-29 10:02:09748검색

How Can I Efficiently Extract Integers from a Comma-Separated String in C  ?

C의 쉼표로 구분된 문자열에서 숫자 데이터 추출

쉼표로 구분된 문자열의 데이터를 숫자 배열로 구문 분석하는 것은 프로그래밍에서 일반적인 과제를 제시합니다. . 정수의 특정 경우에 대해 C는 몇 가지 간단한 접근 방식을 제공합니다.

기본 구문 분석 알고리즘:

한 가지 간단한 방법은 문자열을 문자별로 반복하는 것입니다. 각 문자에 대해 다음 문자가 쉼표인지 확인하세요. 그렇다면 쉼표를 버리십시오. 그렇지 않으면 문자를 정수로 변환하여 배열에 저장합니다.

istringstream 사용:

C 표준 라이브러리는 입력 스트림 구문 분석을 위해 istringstream 클래스를 제공합니다. 쉼표로 구분된 문자열에서 숫자를 추출하려면 해당 문자열을 입력으로 사용하여 istringstream 개체를 만듭니다. 그런 다음 스트림 추출 연산자 >>를 사용하십시오. 한 번에 하나씩 각 숫자를 추출합니다.

구현:

다음 코드 조각은 istringstream을 사용하는 기본 구문 분석 알고리즘을 보여줍니다.

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

int main()
{
    std::string str = "1,2,3,4,5,6";
    std::vector<int> vect;

    std::stringstream ss(str);

    for (int i; ss >> i;) {
        vect.push_back(i);    
        if (ss.peek() == ',')
            ss.ignore();
    }

    for (std::size_t i = 0; i < vect.size(); i++)
        std::cout << vect[i] << std::endl;

    return 0;
}

기타 옵션:

보다 복잡한 구문 분석 시나리오의 경우 C 표준 라이브러리는 strtok 함수 및 정규식과 같은 추가 옵션을 제공합니다. 그러나 간단한 쉼표로 구분된 정수 목록의 경우 위의 방법은 일반적으로 구현하기에 충분하고 간단합니다.

위 내용은 C의 쉼표로 구분된 문자열에서 정수를 효율적으로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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