Форум программистов, компьютерный форум CyberForum.ru

Замена символов в строке - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
Logotipo
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 15
15.03.2014, 23:33     Замена символов в строке #1
Доброго времени суток.
Есть такой код.
C++
1
char text="hello world";
Как заменить слово "world" в этой строке на слово "Mike".
Искал в поисковых системах, нашёл функцию StringReplace и метод String.Replase.
Только вот при попытке их использовать выходит ошибка, мол необъявленный индефикатор.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 23:33     Замена символов в строке
Посмотрите здесь:

Замена символов в строке C++
Замена символов в строке C++
Замена символов в строке C++
замена символов в строке C++
C++ Замена символов в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.03.2014, 18:25     Замена символов в строке #21
Цитата Сообщение от Logotipo Посмотреть сообщение
есть ставить strlen()+1, то опять же пропадает конец строки.
И правильно делает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
18.03.2014, 20:06     Замена символов в строке #22
Цитата Сообщение от Logotipo Посмотреть сообщение
Alex5, c strcpy понятно, а вот почему strncpy копирует кашу, не понятно
Так может случиться, если при копировании мы сотрем нулевой символ. Тогда следующие байты будут рассматриваться, как продолжение строки (пока не встретится нулевой байт).
C++
1
2
3
4
5
    char text[] = "Hello Mike";
    cout << text << endl;
 
    strncpy( text+6, "world", strlen("world") );
    cout << text << endl;
Миниатюры
Замена символов в строке  
Logotipo
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 15
19.03.2014, 20:13  [ТС]     Замена символов в строке #23
Alex5, исправил, но код всё равно не работает.Из-за того, что name<namewithid. Следовательно код с strstr и ctrncpy работать не будет, а значит вопрос в 1 посте всё ещё актуален...
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
20.03.2014, 12:19     Замена символов в строке #24
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Можно использовать string из стандартной библиотеки C++.
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include<string>
 
    std::string st = "Hello, world";
    std::cout << st << std::endl;
 
    std::string next = "[ new text ]";
    st.insert( 6,  next );
    std::cout << st << std::endl;
Добавлено через 4 минуты
class std::string
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 21:16     Замена символов в строке
Еще ссылки по теме:

C++ Замена символов в строке
Замена символов в строке C++
C++ Замена символов в строке с while

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Logotipo
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 15
22.03.2014, 21:16  [ТС]     Замена символов в строке #25
Всем спасибо, сделал сам по иному способу)
 Комментарий модератора 
Какому?


Добавлено через 6 часов 27 минут
Разбил сообщение на 2 части: до name и после, затем вставил в текстовый массив первую часть, добавил namewithid, затем добавил оставшуюся часть.
Yandex
Объявления
22.03.2014, 21:16     Замена символов в строке
Ответ Создать тему
Опции темы

Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru