Тема: string.split
чи є якась стандартна реалізація в С++ на подобі String.split в Java
String str = "dsfsfs sdfsf sfdsf ";
String[] strings = str.split(" ");
В масиві будуть слова розділені пробілом
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → string.split
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
чи є якась стандартна реалізація в С++ на подобі String.split в Java
String str = "dsfsfs sdfsf sfdsf ";
String[] strings = str.split(" ");
В масиві будуть слова розділені пробілом
Немає, але є на php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
в такому випадку і на python є
x = 'blue,red,green'
x.split(",")
['blue', 'red', 'green']
>>>
Але це б не мало бути важко написати таку ф-цію, c++. Логіки мінімум треба...
Гуглити дуже тяжко, але я зміг це зробити. Приклад аналогу.
Ось кілька варіантів, всі некрасиві: http://stackoverflow.com/questions/2361 … tring-in-c
чи є якась стандартна реалізація в С++ на подобі String.split в Java
Можна використати високоріневий стрінгпотік
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main(){
string str = "dsfsfs sdfsf sfdsf dsdf";
stringstream ss(str);
vector< string > arr;
while( ss>>str )
arr.push_back(str);
for( size_t i = 0; i < arr.size(); i++ )
cout<<arr[i]<<endl;
return 0;
}
dsfsfs
sdfsf
sfdsf
dsdf
Це лише по пробілах.
По будь-якому символу допоможе getline з того ж istringstream.
У java, наскільки я зрозумів, по будь-якому рядку.
Тобто "dsfsfs sdfsf sfdsf dsdf" можна розділити по сепаратору "ds" і отримати
""
"fsfs sdfsf sf"
"f "
"ds"
в Delphi (та Borland C++) був клас TStrings, який би міг допомогти в даному випадку. Він міг працювати з DelimitedText, і мав свій "delimiter" або "quotechar". Подивiться отут. Можливо, це допоможе.
Якщо про сторонні бібліотеки, то є boost::split. А TStrings працює з дельфовим String, а не std::string.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися