Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложение строк, тупой вопрос 
:(
    Опции темы
shad0w
Дата 25.5.2005, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 9.5.2005

Репутация: нет
Всего: нет



Очень извеняюсь если тема уже проходила.
Нужно сложыть 2 строки на C. Делаю:

Код

char q;
 q="sss"+"ddd";

Пишет
Error: noname01.cpp(8,10):Invalid pointer addition

Что не так?
PM MAIL   Вверх
_hunter
Дата 25.5.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



char q -- символ. ты хочеш две строки сложить в символ?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Mayk
Дата 25.5.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



В параграфе 6.5.6 стандарта C99 сказано, что для сложения необходимо чтобы оба операторы имели арифметический тип, либо один из операторов имел арифметический тип, а другой был указателем.

Другими словами, Си не позволяет складывать указатели, а "sss" и "ddd" и есть указатели на тип char. Значит Си не позволит сложить их. Поэтому возникает error.

Для сложения строк в Си используется в частности функция strcat(3), которая во-первых стандартная, во-вторых рассматривалась в этом же форуме "С/С++ Общие Вопросы", последнее обновление кстати "24.5.2005, 09:31\nАвтор: Peter" и называлось это "Работа с strcat".






--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Irokez
Дата 25.5.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Код

string q;
 q="sss"+"ddd";

PM   Вверх
bel_nikita
Дата 25.5.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Irokez
Цитата
string q;
q="sss"+"ddd";
Не прокатит smile
Код
string q = "sss";
 q +="ddd";


Это сообщение отредактировал(а) bel_nikita - 25.5.2005, 20:41


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Irokez
Дата 25.5.2005, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(bel_nikita @ 25.5.2005, 20:41)
Не прокатит smile

говорю же, недоучил с++ smile
Код

string q;
q=(string)"sss"+"ddd";

PM   Вверх
kometa_triatlon
Дата 25.5.2005, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 384
Регистрация: 7.1.2005
Где: Киев

Репутация: 2
Всего: 6



Гм.
Вообще-то правильно использовать оператор "+" только в применении к классу CString, так как он там перегружен. А по стандарту:
Код

char* q;
strcpy(q,"123");
strcat(q,"456");



--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
sergejzr
Дата 25.5.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Только не забудь:
Код

char* q=new char[256]; //например 



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
gepard
Дата 26.5.2005, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 2
Всего: 40



Считаю, что каждый СиПлюсПлюснутый должен иметь свой класс работ со строками.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
bel_nikita
Дата 26.5.2005, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
Считаю, что каждый СиПлюсПлюснутый должен иметь свой класс работ со строками

Считаю, что что каждый СиПлюсПлюснутый должен использовать std::string - да бы не было недоразумения и велосипедов, и была переносимость кода smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Yanis
Дата 26.5.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 1
Всего: 111



Цитата(bel_nikita @ 26.5.2005, 09:11)
да бы не было недоразумения и велосипедов

Если бы небыло "велосипедов", то так же небыло бы компьютера, машин и много других великих открытий человечества. Недоразумение - тоже знание, а точнее опыт!


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
kometa_triatlon
Дата 26.5.2005, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 384
Регистрация: 7.1.2005
Где: Киев

Репутация: 2
Всего: 6



Это не тот случай. На ошибках нужно учиться, а не повторять каждый раз одни и те же.
И использовать написанное умными людьми. Ну все, ушли в оффтоп, хотя тут и обсуждать нечего smile


--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
sergejzr
Дата 26.5.2005, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Да, не надо оффтопить плиз smile А вто если кто статейку напишет по базовым понятиям сравнения и сложения строк. Чтобы даже полный новичёк смог понять (с картинками итд), того лично отблагодарю.

Эти вопросы часто возникают. Много новичков программировали на "простых" языках типа Бэйсика или какого нибудь скриптового языка. Им не там просто понять, что указатель и сам массив вещи немного разные smile.

Вот можно было бы людей туда перенаправлять.
smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Alastis
Дата 27.5.2005, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 15.11.2004
Где: Казахстан, Астана

Репутация: 4
Всего: 10



вот есть статьи о строках и их сравнение, вполне доступные для понимания новичков:
Строки в С и С++
Сравнение std::string без учета регистра


--------------------
Прости, что я говорю, когда ты меня перебиваешь.
PM MAIL WWW ICQ   Вверх
WERITAS
Дата 28.5.2005, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



shad0w

сhar g - Один символ! Если хочешь сложить, хотя бы массив выдели.

q="sss"+"ddd"; - строки скалдываются не так smile , а в цикле


Alastis
А хорошая ссылка, кста smile


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.