Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с кодом на Си

Евгений Куликов Ученик (103), на голосовании 2 года назад
Вот текст задачи:
Вывести на экран слова исходной строки, встречающиеся в ней только один
раз. Например: при вводе "When hunter meets hunter this hunter eats
hunter" результат работы программы будет "When meets this eats".

Вот мой код, он работает на онлайн-компиляторах (хоть и с warning-ами), однако при компиляции на компе он не работает. Совсем не могу понять в чем причина, поэтому прошу помощи.

#include
#include
#include

int main()
{
char delim[] = ", ";
char str[100];
fgets(str, 100, stdin);
fflush(stdin);
char str2[100], str3[100];
int lw, ls, chk, temp, i, j, lw2;
strcpy(str3, str);
char *p = strtok(str, delim);
do
{

lw2 += strlen(p) + 1;
for(int i = 0; i < lw2; i++)
{
str3[i] = "";
}
if(strstr(str3, p) == NULL)
{
strcat(str2, p);
strcat(str2, " ");
//printf("%s\n", str2);
}
else
{
ls = strlen(str3);
lw = strlen(p);
for(i = 0; i < ls; i++)
{
temp = i;
for(j = 0; j < lw; j++)
{
if(str3[i] == p[j])
i++;
}
chk = i-temp;
if(chk == lw)
{
i = temp;
for(j = i; j < (ls - lw); j++)
str3[j] = str3[j + lw];
ls = ls - lw;
str3[j] = '\0';
}
}
}
strcpy(str, str3);
}while(p = strtok(NULL, delim));
printf("%s\n", str2);
return 0;
}
Голосование за лучший ответ
Батаев Дмитрий Просветленный (22265) 2 года назад
Скобки неправильно расставил по-моему. Сейчас проверю
Батаев ДмитрийПросветленный (22265) 2 года назад
https://pastebin.com/Yhq5ndBZ
Заработало после инициализации char str2[100] = ""
Похожие вопросы