Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 65
от 17.03.2005, 11:10

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 1


Вопрос № 18171: Здравствуйте! Пытаюсь написать функцию, которая находит в заданной строке определенную последовательность символов и заменяет ее на другую, не получается, где я что делаю не так? Вот код: #include <stdlib.h> #include <stdio.h>...

Вопрос № 18171
Здравствуйте!
Пытаюсь написать функцию, которая находит в заданной строке определенную последовательность символов и заменяет ее на другую, не получается, где я что делаю не так? Вот код:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define R_SMILE_H "<font color=yellow>:</font><font color=green>-</font><font color=red>)</font>"
int main(int argc, char* argv[])
{
char *mess="/!Bla bla/! bla";
int len=strlen(mess);
//char *dst=(char*)malloc(sizeof(char));
char *dst=NULL;
//memset(&dst,0,1);
if((dst = (char *)malloc(sizeof( char ) )) == NULL )
{
printf("Error malloc! ");
exit( 1 );
}
int size = _msize(dst);
printf("%i ",size);
int dstlen=0;
int siz=0;
printf("%i ",len);
for(int i=0;i<len;i++)
{
switch(mess[i])
{
case '/':
{
if(i<len-1&&mess[i+1]=='!')
{
dst=(char*)realloc(dst, (_msize(dst)+strlen(R_SMILE_H)+1)*sizeof(char));
strcat(dst,R_SMILE_H);
dstlen+=strlen(R_SMILE_H);
siz=_msize(dst);
printf("%s ",dst);
i=i+2;
break;
}
}
default:
{
dst=(char*)realloc(dst, (_msize(dst)+1)*sizeof(char));
dst[dstlen++]=mess[i];
break;
}

}
}
printf("%s ",dst);
return 0;
}
Отправлен: 12.03.2005, 11:05
Вопрос задал: r-lynx (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Sin
Здравствуйте, r-lynx!
Отсутствует завершающий ноль в строке, который означает конец строки
смотри приложение, я пометил где ошибки.

Приложение:

Ответ отправил: Sin (статус: 1-ый класс)
Отправлен: 12.03.2005, 16:14


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное