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

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

Войти
Регистрация
Восстановить пароль
 
Shout
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 8
#1

Несостыковка типов при объединении строк - C++

05.06.2014, 21:29. Просмотров 200. Ответов 6
Метки нет (Все метки)

Надо объеденить строки, хочу воспользоваться для этого функцией strcat(), но она возвращает указатель на char, присвоить чару я его не могу, что делать? Разыименовать значение, возвращаемое функцией, можно?
C++
1
2
books[i].title=strcat(A[i].title,str); // строке books[i].title в конечном итоге надо присвоить "A[i].title str A[n-i-1].title"
books[i].title=strcat(books[i].title,A[n-i-1].title);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 21:29     Несостыковка типов при объединении строк
Посмотрите здесь:

C++ не могу понять ошибку типов переменных при деление идет обращение в ноль
Почему конструктор вызывается повторно при преобразовании типов? C++
Зацикливание при сравнении строк C++
C++ Неверный результат при преобразования типов данных static_cast<int>(double)
Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес C++
C++ Несовпадение типов данных при вызове функций
C++ Как запретить преобразование типов при использовании cin
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6453 / 4919 / 451
Регистрация: 14.02.2011
Сообщений: 16,319
05.06.2014, 21:33     Несостыковка типов при объединении строк #2
Цитата Сообщение от Shout Посмотреть сообщение
books[i].title
покажи как объявлен title
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12535 / 7097 / 797
Регистрация: 27.09.2012
Сообщений: 17,510
Записей в блоге: 2
Завершенные тесты: 1
05.06.2014, 21:33     Несостыковка типов при объединении строк #3
http://www.cplusplus.com/reference/cstring/strcat/
Shout
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 8
05.06.2014, 21:34  [ТС]     Несостыковка типов при объединении строк #4
C++
1
2
3
4
struct novel{
    char title[20];
    int pages;
};
zss
Модератор
Эксперт С++
 Аватар для zss
6127 / 5730 / 1853
Регистрация: 18.12.2011
Сообщений: 14,649
Завершенные тесты: 1
05.06.2014, 21:35     Несостыковка типов при объединении строк #5
strcat(A[i].title,str); - прилепит строку str к строке A[i].title
Результат там же (в A[i].title).
ValeryS
Модератор
6453 / 4919 / 451
Регистрация: 14.02.2011
Сообщений: 16,319
05.06.2014, 21:43     Несостыковка типов при объединении строк #6
Цитата Сообщение от Shout Посмотреть сообщение
books[i].title=strcat(A[i].title,str); // строке books[i].title в конечном итоге надо присвоить "A[i].title str A[n-i-1].title"
C++
1
2
3
strcpy(books[i].title, A[i].title);// копируем строку A[i].title в books[i].title
strcat(books[i].title,str);// добавляем str
strcat(books[i].title, A[n-i-1].title);// добавляем A[n-i-1].title
http://cpp.com.ru/shildt_spr_po_c/14/strcat.html

Функция strcat() присоединяет к строке str1 копию строки str2 и завершает строку str1 нулевым символом. Конечный нуль-символ, первоначально завершающий строку str1, перезаписывается первым символом строки str2. Строка str2 при этом не изменяется. Если заданные массивы перекрываются, поведение функции strcat() не определено.
http://lord-n.narod.ru/download/book.../14/strcpy.htm
учти что если размер результируешей строки больше чем 19 символов, хапнешь горя
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 22:02     Несостыковка типов при объединении строк
Еще ссылки по теме:

C++ Куда деваются байты при приведении типов?
Ошибка при сохранении больших чисел в тип int (размер встроенных типов) C++
Обращение по нулевому указателю при преобразование типов C++
Странное поведение при преобразовании типов C++
C++ Почему при данном приведение типов не возникает ошибки?

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

Или воспользуйтесь поиском по форуму:
Renji
1709 / 1142 / 270
Регистрация: 05.06.2014
Сообщений: 3,310
05.06.2014, 22:02     Несостыковка типов при объединении строк #7
Надо объеденить строки, хочу воспользоваться для этого функцией strcat(), но она возвращает указатель на char, присвоить чару я его не могу, что делать?
Использовать std::string, объединять строки через string1+string2, не пользоваться строками типа "массив char". Потому как очень уж легко вылететь за границы этого массива. После чего вроде бы ничего страшного не случится, но через три минуты ваша программа по необъяснимым причинам упадет на ровном месте. И у вас случится долгий и незабываемый секс со средствами отладки.
Yandex
Объявления
05.06.2014, 22:02     Несостыковка типов при объединении строк
Ответ Создать тему
Опции темы

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