Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2012, 02:12   #1
Ecclesiastes
 
Регистрация: 25.09.2012
Сообщений: 5
По умолчанию String и оператор +

Доброй ночи!

Объясните популярно, как сделать так, чтобы подобные вещи:

Код:
char func () 
{
   return 'A';
};
string str1 = "abcdefg", str2;
str2 += "stroka" + str1[1] + func();
работали нормально? Нужно использовать приведение типов?

Если делать так, как в примере, то получается не "strokabA" а совсем другое.

Последний раз редактировалось Ecclesiastes; 28.10.2012 в 12:07.
Ecclesiastes вне форума Ответить с цитированием
Старый 28.10.2012, 02:52   #2
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

а как это вообще должно работает?
- два раза объявляется str2
- str откуда-то взялся
- сложение char[] и char. Как?

char(a) + char(b) != char(ab)
Складывается код символов, а не символы. Так что смысла в вашем примере нет никакого.

Так что совет такой: надо работать со строками, работайте со строками, а не с символами.
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 28.10.2012, 02:57   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну оно и компилится не должно поидее(двойное обьявление str2)
а вообще вы неверно делаете тогда.
Код:
string str2 += "stroka" += str[1] += func();
ибо все остальное не строки, и складывать низзя.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.10.2012, 12:08   #4
Ecclesiastes
 
Регистрация: 25.09.2012
Сообщений: 5
По умолчанию

Эээ - поправил str и двойное объявление.

Но ведь если просто символ в одинарны кавычках приплюсовать к string'у, он присоединится к строке
Ecclesiastes вне форума Ответить с цитированием
Старый 28.10.2012, 15:24   #5
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Посмотрите как выполняются следующие операции.

Код:
string s1,s2;
s1+='a';
s2+='a'+'b';
И сразу поймете в чем тут дело.
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 12:50
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24