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

Ненужные символы в строке - C++

Восстановить пароль Регистрация
 
stratovarius
13 / 13 / 0
Регистрация: 12.07.2009
Сообщений: 114
12.04.2010, 18:03     Ненужные символы в строке #1
мне в новую строку temp надо кинуть строку, перевёрнутую строке str:
C++
1
2
for (i=strlen(str)-1; i!=-1; i--)
  temp[strlen(str)-i-1]=str[i];
при первом разе прохождении цикла оно в конец строки temp добавляет дохрена левых символов, даже если перед циклом написать
C++
1
strcpy(temp,"");
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
12.04.2010, 18:11     Ненужные символы в строке #2
добавь в конец
temp[strlen(str)] = 0;
stratovarius
13 / 13 / 0
Регистрация: 12.07.2009
Сообщений: 114
12.04.2010, 18:14  [ТС]     Ненужные символы в строке #3
Спасибо, работает!

Так а почему оно всё-таки их добавляет??
Alip
53 / 32 / 3
Регистрация: 10.03.2010
Сообщений: 85
12.04.2010, 18:51     Ненужные символы в строке #4
Потому что строка в С должна заканчиваться нулём. Когда ты переворачиваешь строку то полученная строка у тебя не заканчивается нулём и туда попадает всякий мусор из памяти.
Yandex
Объявления
12.04.2010, 18:51     Ненужные символы в строке
Ответ Создать тему
Опции темы

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