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, "±¹");
¿ä·± Äڵ嵵 µ¿ÀÛÇÑ´Ù´Â ¾ê±â´Ù.
|
|