Како поделити низ у Ц ++

How Split String C



Рад са стринг подацима је битан део сваког програмског језика. Понекад морамо да поделимо низ података у сврху програмирања. Функција сплит () постоји у многим програмским језицима за подјелу низа на више дијелова. Не постоји уграђена функција сплит () у Ц ++ за раздвајање низа, али постоји много више начина у Ц ++ за обављање истог задатка, као што је коришћење гетлине () функција, стрток () функцију, користећи пронаћи () и брисање () функције итд. Употреба ових функција за дељење низова у Ц ++ објашњена је у овом водичу.

Предуслов

Пре него што проверите примере овог водича, морате да проверите да ли је компајлер г ++ инсталиран или није у систему. Ако користите Висуал Студио Цоде, инсталирајте потребна проширења за компајлирање изворног кода Ц ++ за креирање извршног кода. Овде је апликација Висуал Студио Цоде коришћена за компајлирање и извршавање кода Ц ++.







Поделите низ помоћу функције гетлине ()

Функција гетлине () користи се за читање знакова из низа или садржаја датотеке све док се не пронађе одређени граничник или сепаратор и складишти сваки низ рашчлањивања у другу променљиву низа. Функција ће наставити задатак све док се цео садржај низа или датотеке не рашчлани. Синтакса ове функције дата је испод.



Синтакса:



истреам&гетлине(истреам&је, низ&стр,цхарделим);

Овде је први параметар, је ток, је објекат одакле ће се извући знакови. Други параметар је стринг променљива која ће чувати издвојену вредност. Трећи параметар се користи за постављање граничника који ће се користити за издвајање низа.





Направите Ц ++ датотеку са следећим кодом да бисте поделили низ на основу разделника размаком користећи гетлине () функција. Вредност низа више речи додељена је променљивој, а размак је коришћен као сепаратор. Проглашена је векторска променљива за чување извучених речи. Затим се петља „фор“ користи за штампање сваке вредности из векторског низа.

// Укључује неопходне библиотеке
#инцлуде
#инцлуде
#инцлуде
#инцлуде

интглавни()
{
// Дефинише низ података који ће бити подељен
сати::низстрДата= 'Научите програмирање на Ц ++';
// Дефинишите податке о садржају који ће се користити као граничник
цонст цхарсепаратор= '';
// Дефинишемо променљиву динамичког низа низова
сати::вектороутпутАрраи;
// Конструише ток из низа
сати::стрингстреамстреамДата(стрДата);
/ *
Декларишите променљиву низа која ће се користити
за складиштење података након раздвајања
* /

сати::низхрс;
/ *
Петља ће поновити подељене податке и
уметните податке у низ
* /

док (сати::гетлине(стреамДата, вал, сепаратор)) {
оутпутАрраи.потисне(хрс);
}
// Одштампај подељене податке
сати::цена << „Оригинални низ је:“ <<стрДата<<сати::ендл;
// Прочитајте низ и одштампајте подељене податке
сати::цена << ' нВредности након раздвајања низа на основу размака: ' <<сати::ендл;
за (ауто &хрс:оутпутАрраи) {
сати::цена <<хрс<<сати::ендл;
}
повратак 0;
}

Излаз:



Следећи излаз ће се појавити након извршавања горњег кода.

Поделите низ помоћу функције стрток ()

Функција стрток () може се користити за раздвајање низа означавањем дела низа на основу разграничења. Враћа показивач на следећи токен ако постоји; у супротном, враћа НУЛЛ вредност. Тхе стринг.х Заглавље је потребно за коришћење ове функције. Петља ће захтевати читање свих подељених вредности из низа. Први аргумент садржи вредност низа која ће бити рашчлањена, а други аргумент садржи граничник који ће се користити за генерисање токена. Синтакса ове функције дата је испод.

Синтакса:

цхар * стрток ( цхар *стр,цонст цхар *граничници);

Направите Ц ++ датотеку са следећим кодом да бисте поделили низ помоћу функције стрток (). Низ знакова је дефинисан у коду који садржи двотачку („:“) као сепаратор. Затим, стрток () функција се позива са вредношћу низа и граничником за генерисање првог токена. „ док ’Петља је дефинисана да генерише остале токене и вредности токена до НУЛА вредност је пронађена.

// Укључује неопходне библиотеке
#инцлуде
#инцлуде

интглавни()
{
// Декларише низ знакова
цхарстрАрраи[] = 'Мехраб Хоссаин: ИТ професионалац: [заштићена е -пошта]: +8801726783423';
// Враћа прву вредност токена на основу ':'
цхар *токенВалуе= стрток(стрАрраи,':');
// Покретање променљиве бројача
интцоунтер= 1;
/ *
Поновите петљу да бисте одштампали вредност токена
и поделите преостале стринг податке да бисте добили
следећа вредност токена
* /

док (токенВалуе!= НУЛА)
{
ако(цоунтер== 1)
принтф('Име: %с н', токенВалуе);
елсе ако(цоунтер== 2)
принтф('Занимање: %с н', токенВалуе);
елсе ако(цоунтер== 3)
принтф('Е -пошта: %с н', токенВалуе);
елсе
принтф('Број мобилног телефона: %с н', токенВалуе);
токенВалуе= стрток(НУЛА,':');
цоунтер++;
}
повратак 0;
}

Излаз:

Следећи излаз ће се појавити након извршавања горњег кода.

Поделите низ помоћу функција финд () и ерасе ()

Низ се може поделити у Ц ++ помоћу функција финд () и ерасе (). Направите Ц ++ датотеку са следећим кодом да бисте проверили употребу функција финд () и ерасе () да бисте поделили вредност низа на основу одређеног граничника. Вредност токена генерише се проналажењем граничника помоћу функције финд (), а вредност токена ће бити сачувана након уклањања разграничења коришћењем функције ерасе (). Овај задатак ће се понављати све док се цео садржај низа не рашчлани. Затим ће се одштампати вредности векторског низа.

// Укључује неопходне библиотеке
#инцлуде
#инцлуде
#инцлуде

интглавни(){
// Дефинишите низ
сати::низстрингДата= „Бангладеш и Јапан, Немачка и Бразил“;
// Дефинишите сепаратор
сати::низсепаратор= 'и';
// Проглашавамо векторску променљиву
сати::векторземља{};
// Проглашавамо целобројну променљиву
интположај;
// Проглашавамо стринг променљиву
сати::низистицање, жетон;

/ *
Поделите низ помоћу функције субстр ()
и додавање раздвојене речи у вектор
* /

док ((положај=стрингДата.пронаћи(сепаратор)) !=сати::низ::нпос) {
токен=стрингДата.субстр(0, положај);
// Уклоните додатни простор са предње стране раздвојеног низа
земља.потисне(токен.избрисати(0, токен.финд_фирст_нот_оф('')));
стрингДата.избрисати(0, положај+сепаратор.дужине());
}
// Одштампајте сву подељену реч осим последње
за (цонст ауто &оутстр:земља) {
сати::цена <<оутстр<<сати::ендл;
}
// Одштампа последњу подељену реч
сати::цена <<стрингДата.избрисати(0, стрингДата.финд_фирст_нот_оф('')) <<сати::ендл;
повратак 0;
}

Излаз:

Следећи излаз ће се појавити након извршавања горњег кода.

Закључак

Три различита начина раздвајања низа у Ц ++ објашњена су у овом водичу помоћу једноставних примера који помажу новим корисницима питхона да лако изврше операцију раздвајања у Ц ++.