Я пытаюсь научиться работать со строками в C, и у меня есть эта проблема, мне нужно перевернуть строку и напечатать ее без повторяющихся символов.Я попробовал приведенный ниже код, и он сработал, но если я добавлю много повторяющихся символов одного типа, это не сработает.
Например: dodon - nodod - nod , но со строкой dodoneeee - eeeenodod - eenod . e все еще повторяется.
Код ниже:
#include <stdio.h>
#include <string.h>
int main(){
char word[20];
char reverse_string[20];
printf("type a string: ");
scanf("\n%s", word);
for(int i = strlen(word)-1; i>=0; i--)
{
// 5 - 5 = 0
// 5- 4 = 1
// 5- 3 = 2
// 5- 2 = 3
// 5- 1 = 4
// 5- 0 = 5
reverse_string[(strlen(word)-1)-i] = word[i];
}
printf("%s\n",reverse_string);
for(int i = 0; i< strlen(reverse_string)-1;i++)
{
for(int j = i+1; reverse_string[j] != '\0';j++)
{
if(reverse_string[j] == reverse_string[i])
{
for(int k = j; reverse_string[k] != '\0'; k++)
{
//printf("%c\n", reverse_string[k+1]);
reverse_string[k] = reverse_string[k + 1];
}
}
}
}
printf("%s\n", reverse_string);
return 0;
}