°­ÁÂ¿Í ÆÁ

stringÀÇ split ÇÔ¼ö ³¯Â¥:2023-1-26 1:04:50 Á¶È¸¼ö:101
ÀÛ¼ºÀÚ : daypark
Æ÷ÀÎÆ® : 1074
°¡ÀÔÀÏ : 2020-02-14 10:42:05
¹æ¹®È½¼ö : 226
±Û 159°³, ´ñ±Û 26°³
¼Ò°³ : ÀÚ±â¼Ò°³¸¦ ÀÔ·ÂÇϽʽÿÀ.
ÀÛ¼º±Û º¸±â
ÂÊÁö º¸³»±â
C++ÀÇ string ŸÀÔÀº ¾²±â ÆíÇÏ°í ¼º´Éµµ ºü¸¥ ÆíÀÌÁö¸¸ CÀÇ ¹®ÀÚ¿­ ÇÔ¼ö¸¦ ´Ù Áö¿øÇÏÁö´Â ¾Ê´Â´Ù.
C#À̳ª ÀÚ¹Ù ½ÉÁö¾î ÆÄÀ̽ã°ú ºñ±³Çصµ ¹®ÀÚ¿­ ÇÔ¼ö°¡ Á¶±Ý ºÎÁ·ÇÑ ÆíÀÌ´Ù.
Á¦ÀÏ ¾Æ½¬¿î°Ô ÅäÅ«À¸·Î ºÎºÐ ¹®ÀÚ¿­À» Àß¶ó³»´Â split ÇÔ¼öÀε¥ ÀÌ°Ô ¾ø¾î ºÒÆíÇÏ´Ù.
¾øÀ¸´Ï ¸¸µé¾î ¾²´Â ¼ö¹Û¿¡ ¾ø´Ù.
ºÎºÐ ¹®ÀÚ¿­ ÃßÃâ¿¡´Â ´ÙÀ½ µÎ ¸Þ¼­µå¸¦ Ȱ¿ëÇÑ´Ù.

size_type find(¹®ÀÚ¿­ ¶Ç´Â ¹®ÀÚ, À§Ä¡) : ãÀº À§Ä¡ ¸®ÅÏ, ¾øÀ¸¸é npos¸¦ ¸®ÅÏÇÑ´Ù.
string substr(À§Ä¡, °³¼ö) : À§Ä¡¿¡¼­ºÎÅÍ °³¼ö ¹®ÀÚ¸¸Å­ ÃßÃâÇÑ´Ù. °³¼ö »ý·«½Ã ³¡±îÁö ÃßÃâÇÑ´Ù.

¹®ÀÚ¿­ óÀ½ºÎÅÍ ±¸ºÐÀÚ¸¦ °Ë»öÇÏ¿© ±¸ºÐÀÚ Á÷Àü±îÁö ÃëÇÏ°í ´ÙÀ½ ±¸ºÐÀÚ·Î À̵¿ÇÏ¸é µÈ´Ù.
ÀÓÀÇ °³¼öÀÇ ¹®ÀÚ¿­À» ÃßÃâÇÒ ¼ö ÀÖÀ¸¹Ç·Î º¤ÅÍ¿¡ ´ã´Â´Ù.

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

using namespace std;

// ¹®ÀÚ¿­À» ±¸ºÐÀÚ ´ÜÀ§·Î Àß¶ó º¤Å͸¦ ¸®ÅÏÇÑ´Ù.
vector<string> string_split(string src, string delim)
{
    int start = 0;
    int end = 0;
    vector<string> ret;

    for (end = src.find(delim); ; end = src.find(delim, start))
    {
        // ´õ ¾øÀ¸¸é ³¡±îÁö ÃßÃâÇÏ°í ¸®ÅÏÇÑ´Ù.
        if (end == string::npos) {
            ret.push_back(src.substr(start));
            break;
        }
        // ¹ß°ßµÈ ÅäÅ«À» ºÐ¸®ÇÏ¿© Ãß°¡ÇÏ°í ±¸ºÐÀÚ ´ÙÀ½ À§Ä¡·Î À̵¿ÇÑ´Ù.
        ret.push_back(src.substr(start, end - start));
        start = end + delim.length();
        // ¸¶Áö¸· ±¸ºÐÀÚ´Â ¹«½ÃÇÑ´Ù.
        if (start >= src.length()) break;
    }

    return ret;
}

int main()
{
    string str = "Çѱ¹;Àεµ³×½Ã¾Æ;º£Æ®³²";
    vector<string> ret = string_split(str, ";");

    for (int i = 0; i < ret.size(); i++) {
        cout << ret[i] << endl;
    }
}


½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

Çѱ¹
Àεµ³×½Ã¾Æ
º£Æ®³²

ÀÌ ¿Ü¿¡ istringstream °ú getline ÇÔ¼ö¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ýµµ Àִµ¥ ±¸ºÐÀÚ°¡ ¹®ÀÚ¿©¾ß ÇÑ´Ù´Â Á¦¾àÀÌ ÀÖ´Ù.
find ¸Þ¼­µå´Â ºÎºÐ ¹®ÀÚ¿­À» °Ë»öÇÒ ¼ö ÀÖ¾î ±¸ºÐÀÚ°¡ µÎ ÀÚ ÀÌ»óÀ̾ »ó°ü¾ø´Ù´Â Á¡¿¡¼­ ´õ ¹ü¿ëÀûÀÌ´Ù.

    string str = "Çѱ¹Áß±¹ÀϺ»¹Ì±¹·¯½Ã¾Æ";
    vector<string> ret = string_split(str, "±¹");

¿ä·± Äڵ嵵 µ¿ÀÛÇÑ´Ù´Â ¾ê±â´Ù.

 

¸ñ·Ïº¸±â »èÁ¦ ¼öÁ¤ ½Å°í ½ºÅ©·¦


·Î±×ÀÎÇÏ¼Å¾ß ´ñ±ÛÀ» ´Þ ¼ö ÀÖ½À´Ï´Ù.