С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.06.2014, 21:29. Просмотров 220. Ответов 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);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 21:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Несостыковка типов при объединении строк (C++):

Преобразование типов при наследовании - C++
Здравствуйте! Никак не получается разобраться с проблемой. Храню в контейнере объекты. Доступ к ним осуществляю через type_index. ...

Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов. - C++
Буду благодарен! Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов.

Странное поведение при преобразовании типов - C++
Доброго времени суток! Помогал товарищу написать простенькую программу. Задача состояла в том, чтобы при введенном дробном числе...

Обращение по нулевому указателю при преобразование типов - C++
int main() { unsigned long long long1 = 123456789012345; char str; _ultoa_s(long1, str, size_t (str), 10); return 0; } ...

Куда деваются байты при приведении типов? - C++
Всем доброго времени суток... Т.к. основной проект на c++, то пишу сюда... Непонятки с приведением типов, объясните пожалуйста... ...

Несовпадение типов данных при вызове функций - C++
Код не компилируется из-за несовпадения типов переменных. Я уже запутался и не понимаю что не так) #include <iostream> #include...

6
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,254
05.06.2014, 21:33 #2
Цитата Сообщение от Shout Посмотреть сообщение
books[i].title
покажи как объявлен title
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
05.06.2014, 21:33 #3
http://www.cplusplus.com/reference/cstring/strcat/
0
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;
};
0
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,020
Завершенные тесты: 1
05.06.2014, 21:35 #5
strcat(A[i].title,str); - прилепит строку str к строке A[i].title
Результат там же (в A[i].title).
1
ValeryS
Модератор
6729 / 5138 / 485
Регистрация: 14.02.2011
Сообщений: 17,254
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 символов, хапнешь горя
0
Renji
2017 / 1385 / 312
Регистрация: 05.06.2014
Сообщений: 3,953
05.06.2014, 22:02 #7
Надо объеденить строки, хочу воспользоваться для этого функцией strcat(), но она возвращает указатель на char, присвоить чару я его не могу, что делать?
Использовать std::string, объединять строки через string1+string2, не пользоваться строками типа "массив char". Потому как очень уж легко вылететь за границы этого массива. После чего вроде бы ничего страшного не случится, но через три минуты ваша программа по необъяснимым причинам упадет на ровном месте. И у вас случится долгий и незабываемый секс со средствами отладки.
0
05.06.2014, 22:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 22:02
Привет! Вот еще темы с ответами:

Почему конструктор вызывается повторно при преобразовании типов? - C++
В качестве примера предлагаю рассмотреть примерчик из учебника. В примере мы создаём класс, содержащий в качестве поля строку символов и...

Нужны примеры разных типов ошибок при программировании - C++
Здрасти. Не могли бы вы привести примеры следующих типов ошибок в С++: 1) Функциональные ошибки 2) Ошибки логики программирования ...

Как запретить преобразование типов при использовании cin - C++
Как запретить преобразование типов при использовании объекта потокового ввода cin. Проблема в том, что существует переменная типа int и со...

Почему при данном приведение типов не возникает ошибки? - C++
Почему нижеприведенный код не вызывает проблем? Ведь, мы приводим типы от ребенка ко второму родителю и потом void, в результате чего...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.