Строки в C++

В общем мне потребовалось написать лабу на тему "Строки" следующего содержания : "Ввести строку из нескольких фамилий отделенных запятыми , вставить имена для каждой фамилии и вывести на экран" У меня есть одна идея, как это осуществить- путём создания еще 1 массива и поиском в введенной строке запятой ,переносом фамилии до запятой во 2 массив,далее переносом имени и т.д....Но помоему есть способ попроще..если кто-нибудь знает как помочь,подскажите пож-ста..P.s. Заранее спасибо.
3 ответа

Вот
#include <iostream>
#include <conio>
#include <string>
using namespace std;
int main()
{
 string s1("Ivanov, Petrov, Vasiliev."),
 s2[]={"Ivan","Petr","Vasia"};
 int c=0;
 for(int i=1;i<=(int)s1.length();i++)
 if(s1[i]==','||s1[i]=='.')
 {
 s1.insert(i," "+s2[c++]);
 i = i+s2[c-1].length()+1;
 }
 cout<<s1<<endl;
 getch();
 return 0;
}


Спасибо за помощь,но появился ряд вопросов, касающихся данного кода..
#include <vcl.h>
#pragma hdrstop
#include <iostream>
#include <conio>
#include <string>
using namespace std;
int main()
{
 string s1,s2[]={"Ivan","Petr","Vasia"};
 int c=0;
 cout<<"BBegute 4epe3 3an9TylO 3 <l>aMuJIuu ,"
 <<"\n nocJIe nocJIegHeu <l>aMuJIuu nocTaBbTe To4ky(!!!)\n";
 cin >>s1;
 for(int i=1;i<=<font color="Red">(int)s1.length()</font>;i++)
 if(s1[i]==','<font color="Red">||</font>s1[i]=='.')
 {
 <font color="Red">s1.insert(i," "+s2[c++]);
 i = i+s2[c-1].length()+1;</font>
 }
 cout<<s1<<endl;
 getch();
 return 0;
}
Красным выделил то, что не совсем понимаю...может объясните?) значек || аналог && ? т.е. или то или то? Вообще как я понял, программа выполняет поиск точки,либо запятой, далее как только точка или запятая найдены,вставляет имя и продолжает поиск?


&& - логическое "И" || - логическое "ИЛИ"