Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> составление строки с помощью strtok() 
V
    Опции темы
choodo
Дата 20.5.2010, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 28.5.2007

Репутация: нет
Всего: 0



Из двух заданных строк 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?showtopi...p;#entry2599257

Это сообщение отредактировал(а) choodo - 20.5.2010, 11:33
PM   Вверх
xvr
Дата 20.5.2010, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Разбей строки A и B на слова по отдельности (сначала A, потом B). Результаты сохрани в 2 штуки vector<char*>. Потом объединяй их как хочешь.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0380 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.