2014-01-22 3 views
0

Мне нужно проанализировать следующее, которое хранится в переменной, и извлекать только имена. Эти имена должны быть помещены в новую переменную (все вместе разделены dot (.)). Есть идеи?Разбор строк в переменной и сохранение их в новой переменной

Name : Mike Anderson\n 
Age : 43\n 
Name : Andie Jameson\n 
Age : 35\n 

Ожидаемый результат должен быть переменной с содержанием: Mike Anderson.Andie Jameson

Спасибо.

+0

Рассматривайте их как длинную строку и экстракт на основе 'Название:'. – herohuyongtao

+0

Вот в чем вопрос: P как я это делаю в случае переменной ... –

+3

Является ли это «Моя домашняя работа?» если не показать какой-то _relevant_ код, который вы пробовали. И да, по релевантности я имею в виду не код «Hello World». Не просто открыть файл и сказать, что я попробовал. – P0W

ответ

0

В вашей ситуации будет много полезных методов. Этот код является лишь одним из них. Я использовал std::istringstream, string::find().

int main() 
{ 
    //Originally, each data is from your source. 
    //but, this is just sample. 
    std::istringstream input; 
    input.str("Name : Mike Anderson\nAge : 43\nName : Andie Jameson\nAge : 35\n"); 

    //to find pattern 
    std::string name_pattern = "Name : "; 

    std::size_t found = std::string::npos; 
for (std::string line; std::getline(input, line);) { 
    found = line.find(name_pattern); 
    if (found!=std::string::npos) 
    { 
     //write on file for 'directory' 
     std::string only_name(line, found + name_pattern.length()); 
     std::cout << "\nName : " << only_name; 

     continue; 
    } 
    } 

    getchar(); 
} 

Этот код будет печатать ниже, как,

enter image description here

+1

Мало того, что это не дает результат, на который запросил OP, он, похоже, ссылается на вещи значительно более продвинутые, чем может понять ОП (на основе ограниченной информации, доступной им) – kfsone

Смежные вопросы