C++ Удвоить Все Найденные Вхождения Строки В Текст

Тема в разделе "C/C++/C#", создана пользователем prettynetty, 16 июл 2012.

Статус темы:
Закрыта.
  1. prettynetty

    prettynetty Гость

    c++ visual
    Задание: дан текст и строка. удвойте все найденные вхождения строки.
    насколько я понимаю, если ввести текст "мама мыла раму" и строку"мыла", то должно получиться "мама мыламыла раму".
    прочитала тут про функцию Pos, пытаюсь ее применить, но компилятор ругается. может эта функция только для билдера? помогите решить задачку хоть как нибудь.
    доп.условие: ввод и вывод русского текста
    <!--shcode--><pre><code class='SELECT AnyThing FROM SomeThing'>#include<stdio.h>
    #include<windows.h>
    #include<string.h>
    #include<conio.h>


    int main()
    {
    SetConsoleOutputCP(1251);
    char text[256], text2[256], str[64];
    int i, j;
    printf("введите текст:\n");
    fflush(stdin);
    gets(text);
    OemToChar(text, text);
    printf("введите строку:\n");
    fflush(stdin);
    gets(str);
    OemToChar(str, str);
    if(strstr(text, str)!=NULL){
    for(i = 0; i < text.Pos(str); i++)
    text2=text;
    for(i = text.Pos(str), j=0; j < strlen(str); i++, j++)
    text2=str[j];
    for(i = text.Pos(str)+strlen(str), j=text.Pos(str); j < strlen(text); i++, j++)
    text2=text[j];
    }
    printf("результат:%s\n", text);
    system("pause");
    return 0;}[/CODE]
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    ммм... очень сложно пишите, я бы использовал std ::find и std ::string
    у стандартных строк перегружен оператор + (конкатенация), поэтому формировать новую строку было бы удобно
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    в вашем коде, скорее всего полагается что Pos ищет первое вхождение подстроки в строке.
    В стандартной библиотеке для этого можно использовать strstr (древняя функция, МБ вам более подойдет) или str ::string ::find() или std ::search
     
Загрузка...
Похожие Темы - C++ Удвоить Все
  1. Nadia_IT
    Ответов:
    0
    Просмотров:
    18
  2. kmm96
    Ответов:
    1
    Просмотров:
    24
  3. TriXel_01
    Ответов:
    5
    Просмотров:
    98
  4. acs-nexus
    Ответов:
    0
    Просмотров:
    89
  5. Ramzay
    Ответов:
    3
    Просмотров:
    131
Статус темы:
Закрыта.

Поделиться этой страницей