Я хочу написать функцию, которая получает предложение (я называю это resentence) и найти дублированные слова и удалить их. например: входудалить дублированные слова в строке в c программе
Big happy happy smile
выход
Big happy smile
Это показывает, что ошибка в строке:
if (strstr(temp1, temp) == NULL)
надежда кто-то может найти то, что сделка.
void RemoveDuplicates(char *resentence)
{
char *temp1 = malloc(100);
char *temp = NULL;
int len;
len = strlen(resentence);
printf("len:%d", len);
temp = strtok(resentence, " ");
if (temp != NULL && strstr(temp1, temp) == NULL)
strcpy(temp1, temp);
while (temp != NULL)
{
temp = strtok(NULL, " ");
if (strstr(temp1, temp) == NULL)
{
strcat(temp1, " ");
strcat(temp1, temp);
}
}
strcpy(resentence,temp1);
puts(resentence);
free(temp1);
}
Какое сообщение об ошибке? –
Необработанное исключение в 0x5DEA49CE (msvcr120d.dll) в файле q1.exe: 0xC0000005: Место чтения нарушения доступа 0x00000000. Я предполагаю, что есть ошибка памяти –
первый раз «temp1» указывает на неинициализацию области. 'char * temp1 = malloc (100);' -> 'char * temp1 = calloc (100, 1);' или 'char * temp1 = malloc (100); * temp1 = 0;' – BLUEPIXY