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

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

Восстановить пароль Регистрация
 
reisal78
 Аватар для reisal78
603 / 516 / 119
Регистрация: 28.04.2013
Сообщений: 1,451
16.08.2013, 17:01     Модификация объектов класса string #1
ООП С++ Лафоре

есть пример:

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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.08.2013, 17:07     Модификация объектов класса string #2
Цитата Сообщение от reisal78 Посмотреть сообщение
Не могу понять как исправить.
C++
1
s1.replace(x, 1, "/");
reisal78
 Аватар для reisal78
603 / 516 / 119
Регистрация: 28.04.2013
Сообщений: 1,451
16.08.2013, 17:12  [ТС]     Модификация объектов класса string #3
Угу, благодарю, все заработало.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
16.08.2013, 23:38     Модификация объектов класса string #4
Цитата Сообщение от reisal78 Посмотреть сообщение
..\main.cpp(20): warning C4018: <: несоответствие типов со знаком и без знака
C++
1
std::size_t x = s1.find( ' ' );
Yandex
Объявления
16.08.2013, 23:38     Модификация объектов класса string
Ответ Создать тему
Опции темы

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