|
2 / 2 / 1
Регистрация: 27.07.2009
Сообщений: 75
|
||||||
функция strcpy и strcat30.07.2009, 13:20. Показов 6492. Ответов 20
Метки нет (Все метки)
Добрый день!У меня такая проблема...Есть массив строк, где хранятся имена и при выводе имени на экран,если оно длиннее определенного,то я его обрезаю,а в конец добавляю три точки...Но почему-то оно выводит обрезанное имя,а потом разный мусор и только в конце ставит три точки...Вот кусок кода:
0
|
||||||
| 30.07.2009, 13:20 | |
|
Ответы с готовыми решениями:
20
Реализовать собственные функции strcat, strcpy, strcmp, strlen Для класса String перегрузить функции strcpy, strcat |
|
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
|
|
| 30.07.2009, 13:25 | |
|
name[pos]->name, что это?
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 30.07.2009, 13:31 | |
|
larry, из-за отсутствия кода, тяжело сказать где именно баг.
Есь универсально решение, проинициализируй все используемые тобой строки символом '\0'. Тогда муссор уж точно не должен выходить.
0
|
|
|
2 / 2 / 1
Регистрация: 27.07.2009
Сообщений: 75
|
|
| 30.07.2009, 13:34 [ТС] | |
|
я добавлял в конце strcat(str, '\0'), но все-равно тоже самое...
name[pos]->name-это я опечатался
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||||||
| 30.07.2009, 13:47 | ||||||
|
larry, и? добавляет после муссора символ '\0'. а тебе нужно весь муссор заменить '\0'.
попробуй так. Если муссор останется, то муссор у тебя находится в name[pos]->name;
1
|
||||||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
||||||||||||
| 30.07.2009, 14:10 | ||||||||||||
![]() Добавлено через 16 минут 1 секунду Monte-Cristo,
0
|
||||||||||||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||
| 30.07.2009, 14:10 | |||||||
Компилировал на Visual C++ ? Попробуй на gcc следующий код:
0
|
|||||||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|||
| 30.07.2009, 14:20 | |||
|
0
|
|||
|
2 / 2 / 1
Регистрация: 27.07.2009
Сообщений: 75
|
|
| 30.07.2009, 14:54 [ТС] | |
|
Спасибо большое!Все получилось!..
0
|
|
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
||||||
| 30.07.2009, 14:55 | ||||||
|
Monte-Cristo, если уж на то пошло, всё-равно вы неправильно memset используете
должно быть так:
0
|
||||||
|
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
|
|
| 30.07.2009, 15:04 | |
|
zim22, sizeof(char) всегда равен 1, в данном случае это можно не указывать.
0
|
|
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|
| 30.07.2009, 15:20 | |
|
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||
| 30.07.2009, 15:31 | ||
|
zim22, а разница? char = 1-байт. Пока что я не встречал платформы, где это не было бы действительностью (а то что larry пишет под платформу Windows 32-bit я был уверен)
про инициализацию int* n = new int(5) знал, а вот что массивы можно так инициализировать - впервые вижу
0
|
||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|||||||||||
| 30.07.2009, 15:57 | |||||||||||
![]()
0
|
|||||||||||
|
Заблокирован
|
||||||
| 30.07.2009, 16:20 | ||||||
|
Вот так сделай и будет тебе счастье...
0
|
||||||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||
| 30.07.2009, 16:38 | |||
![]()
0
|
|||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|||
| 30.07.2009, 17:08 | |||
|
Добавлено через 26 минут 2 секунды
0
|
|||
|
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
|
|
| 30.07.2009, 17:48 | |
|
zim22, ты конечно молодец, но человека с толку сбил!
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 30.07.2009, 17:51 | ||
24 символа + 3 символа + '\0' - итого 28 символов на массив в 27 символов.
0
|
||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
||
| 30.07.2009, 18:00 | ||
человек сам себя сбил. проблема в том, что волшебные круглые скобочки он не добавил str = new char[size]();
0
|
||
| 30.07.2009, 18:00 | |
|
Помогаю со студенческими работами здесь
20
Написать собственные аналоги функций strlen, strcmp, strchr, strcpy, strcat (дописать и исправить ошибки) Функция strcat функция strcat Что делает функция strcat(t, f)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|