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

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

Восстановить пароль Регистрация
 
Shout
0 / 0 / 0
Регистрация: 27.04.2014
Сообщений: 8
05.06.2014, 21:29     Несостыковка типов при объединении строк #1
Надо объеденить строки, хочу воспользоваться для этого функцией 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++
Зацикливание при сравнении строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
05.06.2014, 21:33     Несостыковка типов при объединении строк #2
Цитата Сообщение от Shout Посмотреть сообщение
books[i].title
покажи как объявлен title
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 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
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
05.06.2014, 21:35     Несостыковка типов при объединении строк #5
strcat(A[i].title,str); - прилепит строку str к строке A[i].title
Результат там же (в A[i].title).
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
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++ Неверный результат при преобразования типов данных static_cast<int>(double)
Почему при выводе указателя получаем для char - значение по адресу, а для других типов - адрес C++
C++ Несколько ошибок при обработке строк

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

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

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