투케이2K

27. (C++) [istringstream] : split 사용해 문자열 분리 실시 본문

C++

27. (C++) [istringstream] : split 사용해 문자열 분리 실시

투케이2K 2023. 3. 4. 15:44

[개발 환경 설정]

개발 언어 : C++

 

[소스 코드]

// -----------------------------------------------------------------------------------------
//
// Created by KGH on 2023-02-12.
//
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [헤더 파일 import]

#include "Test.h"
#include <android/log.h>
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [include 및 define 문 정의]
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [split 함수 정의]
vector<string> split(string str, char Delimiter) {
    istringstream iss(str); // [istringstream 에 데이터를 담음]
    string buffer;

    vector<string> result;
    while (getline(iss, buffer, Delimiter)) {
        result.push_back(buffer); // [특정 문자 기준 분리된 문자열을 vector 에 저장]
    }

    // [리턴 반환 실시]
    return result;
}
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [구현부 소스 코드 작성]
int main(void)
{

    /**
     * ------------------------------------
     * [요약 설명]
     * ------------------------------------
     * 1. split : 특정 문자열 기준으로 해당 문자열을 분리합니다
     * ------------------------------------
     * */


    // [변수 선언 실시]
    string data = "hello,투케이,반가워";


    // [콤마 (,) 기준으로 문자열 분리]
    vector<string> result = split(data, ',');


    // [로그 출력 실시]
    __android_log_print(ANDROID_LOG_WARN, "[C++] [LOG]", "%s", "=====================================================");
    __android_log_print(ANDROID_LOG_INFO, "[C++] [LOG]", "[0번지] :: %s", result[0].c_str());
    __android_log_print(ANDROID_LOG_INFO, "[C++] [LOG]", "[1번지] :: %s", result[1].c_str());
    __android_log_print(ANDROID_LOG_INFO, "[C++] [LOG]", "[2번지] :: %s", result[2].c_str());
    __android_log_print(ANDROID_LOG_WARN, "[C++] [LOG]", "%s", "=====================================================");


    return 0;
}
// --------------------------------------------------------------------------------------
 

[결과 출력]

 

W/[C++] [LOG]: =====================================================
I/[C++] [LOG]: [0번지] :: hello
I/[C++] [LOG]: [1번지] :: 투케이
I/[C++] [LOG]: [2번지] :: 반가워
W/[C++] [LOG]: =====================================================

 


 

반응형
Comments