На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела
1. Не создавайте несколько одинаковых тем, ибо модератор может расценить их, как спам и удалить все.
2. Для решения задач по GPSS есть отдельная тема. Все задачи по GPSS опубликовывать в этой теме! Перед опубликовыванием вашей задачи просмотрите всю тему, возможно вы сразу найдете решение.
3. Давайте вашим темам ОСМЫСЛЕННЫЕ названия, а также указывайте язык программирования. Пример: [Pascal]:Работа с файлами и записями.
4. Использования тега CODE обязательно при публикации текста программы.

Темы, оформленные с явным игнорированием правил и отсутствием смысла, будут закрыты/удалены!
Вам помогли? Напишите об этом здесь (в портфолио фрилансера)

Фрилансерам:
5. Демпинг цен запрещен (даже если Вы готовы работать бесплатно). Цены обсуждаются в приватном общении. Если вы готовы рещить задачу бесплатно, просто решите ее быстрее, чем возникнет предложение сделать это за деньги.
6. Пользователям, входящим в группу Newbie, запрещается предлагать свои услуги (завуалированно в т.ч.)
7. В посте с предложением выполнить работу, обязательно указывать ссылку на свое портфолио в Отзывы, Благодарности, Портфолио Это правило работает и в том случае, если вы выполняете работу бесплатно.
8. Реклама (даже завуалированная) своих фриланских сайтов запрещена

Нарушение данных пунктов влечет до RO или БАНА (при неоднократом)
Модераторы: ttiger, mikefreelance, Rust
  
    > Замена слов в строке , На С++ заменить слово в строке
      Добрый день.Возникла такая проблема- есть str,slovo,zamena - вводятся с клавиатуры пользователем. Все динамические массивы.str-строка,slovo-слово которое необходимо заменить в строке,zamena-слово на которое необходимо заменить.И вывести измененную строку.Мой вариант(нашел на форуме)не работает,что не так?
      ExpandedWrap disabled
        char replaces_word(char*str, char*slovo, char*zamena) {
         
            char* strSubString = strstr(str, slovo);
            const int nMainLen = strlen(str);
            const int nSecondaryLen = strlen(slovo);
            const int nSubStringLen = strlen(strSubString);
            const int nNewLen = strlen(zamena);
         
            char* strResult = new char[nMainLen - nSecondaryLen + nNewLen + 1];
         
            strncpy(strResult, slovo, (int)(str - slovo));
            strcat(strResult, zamena);
            strncat(strResult, strSubString + nSecondaryLen, nMainLen - nSecondaryLen - nSubStringLen);
            printf(strResult);
            return 0;
         
        }
        Во-первых, совершенно непонятно зачем вы в первой строке результата (strncpy(strResult, slovo, (int)(str - slovo))) копируете ненужный кусок в результат. slovo ж надо было найти и заменить, а вы его вовсе не забываете.
        Во-вторых, str и slovo - лежат в памяти, причём могут в разных гигабайтах её!!! А значит выражение (int)(str - slovo) ну явно неправильное. ;)
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0243 ]   [ 15 queries used ]   [ Generated: 31.01.23, 03:47 GMT ]