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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
reisal78
В поисках работы, СПб
658 / 571 / 136
Регистрация: 28.04.2013
Сообщений: 1,633
#1

Модификация объектов класса string - C++

16.08.2013, 17:01. Просмотров 476. Ответов 3
Метки нет (Все метки)

ООП С++ Лафоре

есть пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// sstrchng.cpp
// изменение частей строки
#include <iostream>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
int main ( )
{
  string s1 ( "Все хорошо, прекрасная маркиза." );
  string s2 ( "принцесса" );
  string s3 ( "Приветствую " );
 
  s1.erase ( 0, 12 );              // убираем "Все хорошо, "
  s1.replace ( 11, 7, s2 );        // заменяем "маркиза" на "принцесса"
  s1.insert ( 0, s3 );             // вставляем "Приветствую, "
  s1.erase ( s1.size ( ) - 1, 1 ); // убираем '.'
  s1.append ( 3, '!' );            // добавляем '!!!'
 
  int x = s1.find ( ' ' );         // ищем пробелы
  while ( x < s1.size ( ) )        // цикл по всем пробелам
  {
    s1.replace(x, 1, '/');      // заменяем пробел на '/'
    x = s1.find ( ' ' );           // ищем следующий пробел
  }
 
  cout << "s1: " << s1 << endl;
 
  return 0;
}
У меня появляется ошибка:

..\main.cpp(20): warning C4018: <: несоответствие типов со знаком и без знака
..\main.cpp(22): error C2664: std::basic_string<_Elem,_Traits,_Alloc> &std::basic_string<_Elem,_Traits,_Alloc>::replace(unsigned int,unsigned int,const std::basic_string<_Elem,_Traits,_Alloc> &): невозможно преобразовать параметр 3 из "char" в "const std::basic_string<_Elem,_Traits,_Alloc> &"
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Alloc=std::allocator<char>
]
Причина: невозможно преобразовать "char" в "const std::basic_string<_Elem,_Traits,_Alloc>"
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Alloc=std::allocator<char>
]
Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Подсвечивается строка 22. Не могу понять как исправить. (VS2012)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2013, 17:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Модификация объектов класса string (C++):

Модификация объекта string через ссылку и указатель - C++
Создайте две функции: первая должна получать аргумент типа string*, вторая - srting&amp;. Каждая функция должна изменять объект string своим...

Модификация разработанного класса - C++
Создал класс видеомагнитофон, требуется доработать его вот по этому заданию: Рассмотреть модификацию видеомагнитофона,который...

Построение описания класса, создание и уничтожение объектов этого класса - C++
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения...

Реализовать подсчет количества объектов класса, используя статическую переменную-член класса - C++
как реализовать подсчет количества объектов класса (используя статическую переменную-член класса), а также статическую функцию, которая...

Массив объектов класса. Печать строк-членов класса. - C++
подскажите, как распечатать строки? #include &quot;myString.h&quot; #include &lt;iostream&gt; #define stop __asm nop void main() { ...

Массив объектов класса как член другого класса - C++
Здравствуйте. У меня тут возникла проблемка #include &quot;main.h&quot; class player { public: player(); player(char*); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.08.2013, 17:07 #2
Цитата Сообщение от reisal78 Посмотреть сообщение
Не могу понять как исправить.
C++
1
s1.replace(x, 1, "/");
1
reisal78
В поисках работы, СПб
658 / 571 / 136
Регистрация: 28.04.2013
Сообщений: 1,633
16.08.2013, 17:12  [ТС] #3
Угу, благодарю, все заработало.
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
16.08.2013, 23:38 #4
Цитата Сообщение от reisal78 Посмотреть сообщение
..\main.cpp(20): warning C4018: <: несоответствие типов со знаком и без знака
C++
1
std::size_t x = s1.find( ' ' );
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2013, 23:38
Привет! Вот еще темы с ответами:

Инициализация объектов класса в конструкторе другого класса - C++
У меня есть класс Subscriber,в котором есть несколько объектов другого класса Date,мне нужно,чтобы при создании Subscriber объекты класса...

Сравнение объектов string - C++
Вопрос такой. Мне нужно организовать поиск по ключу типа string. Но сравниваются они посимвольно. if (somestring==parametr) {....} ...

Использование strlen для объектов типа string - C++
Подскажите пожалуйста, как strlen использовать на string.

Сериализация объектов с полями std::string + запись/чтение в файл - C++
Здравствуйте! Есть класс: class Guest { private: std::string login;


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.08.2013, 23:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru