Вопрос № 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