#include <stdio.h>
#include <string.h>
#define M 500
void fun(char *a, void (*p)(char *, void (*q)(char *, char *)), void (*q)(char *, char *))
{
char *t;
for (t = a + 1; *t != '\0'; ++t)
{
if (*t == *(t - 1))
{
if (*t != '\0')
{
*t = ' ';
p(t, q);
t--;
}
else
{
return ;
}
}
else if (*t != *(t - 1) && *t == *(t + 1))
{
if (*(t + 1) != '\0')
{
*(t + 1) = ' ';
p(t + 1, q);
t--;
}
else
{
return ;
}
}
}
}
void fun2(char *a, void (*q)(char *, char *))
{
char *t;
t = a + 1;
for (; *t != '\0'; ++t)
{
q(t, t - 1);
}
q(t, t - 1);
}
void swap(char *a, char *b)
{
char c;
c = *a;
*a = *b;
*b = c;
}
int main(int argc, char const *argv[])
{
char str[M] = "asss dffff ggggg";
gets(str);
void (*q)(char *, char *);
void (*p)(char *, void (*q)(char *, char *));
q = swap;
p = fun2;
fun(str, p, q);
puts(str);
return 0;
}
字符串去重
最新推荐文章于 2022-09-29 09:43:41 发布