Из двух заданных строк A и B составить по n слов в каждой составить строку C, поочередно записав в нее слова из А и B. Вот набросал, но strok()...! Можно ли как-то заставить ф-ю работать с нужной мне строкой, а не той, которая была запомнена в strok()?
| Код | #include <iostream.h> #include <stdio.h> #include <string.h> #include <conio.h> void main() { clrscr(); char textA[1000]="";//initializing char textB[1000]="";// char textC[1000]=""; char slovo[1000]; int n; // n slov
cout << "Vvedite n:"; cin >> n;
cout << "Vvedite dlya A " <<n<<" slov(o/a):"<< endl;
for (int i=0;i<n;++i) { cout <<"Slovo "<< (i+1) <<":"; cin >>slovo; strcat(textA,slovo); strcat(textA," "); } cout <<"Poluchili stroku A: "<<textA<<endl;
//B cout << "Vvedite dlya B " <<n<<" slov(o/a):"<< endl;
for(i=0;i<n;++i) { cout <<"Slovo "<< (i+1) <<":"; cin >>slovo; strcat(textB,slovo); strcat(textB," "); } cout <<"Poluchili stroku B: "<<textB<<endl;
char *pA; // char *pB; //
//1st call - razdelenie na leksemy pA = strtok(textA, " "); strcat(textC, pA);
pB = strtok(textB, " "); strcat(textC, pB);
do { pA = strtok(NULL, " ");//тут работает с pB, а нужно с pA if(pA) { strcat(textC, pA); //strcat(textC," "); }
pB = strtok(NULL, " "); if(pB) { strcat(textC, pB); //strcat(textC," "); } } while(pA || pB);
cout<<textC;
}
|
"Насильно" переставляем NULL в строках на длину лексемы: http://forum.sources.ru/index.php?showtopic=303900&st=0&#entry2599257 |