使用c

时间:2018-02-07 07:17:56

标签: c string visual-studio

首先我的代码打印yksi itsekseen lol,现在它打印yksiitsekseenlol,我正在尝试打印yksi itsekseen lol。在第一个中有两个,第二个没有,我试图在单词之间只有一个空格。

我的代码:

#include <stdio.h>
#include <string.h>

void antikorso(char *dest, const char *src) {
    const char *p = src;
    int i;

    for (i = 0; *p != '\0'; i++, p++)
    {
        if (*p == 'x') {
            dest[i++] = 'k';
            dest[i] = 's';
        }
        else if (*p == 'z') {
            dest[i++] = 't';
            dest[i] = 's';
        }
        else
        {
            dest[i] = *p;
        }
    }
    dest[i] = '\0';
    char *original = dest;
    char c[10] = "hello";
    while (dest = strstr(dest, c)) {
        memmove(dest, dest + strlen(c), 1 + strlen(dest + strlen(c)));
    }

    char *nat = original;
    char b[20] = "asd";
    while (dest = strstr(original, b)) {
        memmove(dest, dest + strlen(b), 1 + strlen(dest + strlen(b)));
    }
    printf("\n%s", nat);

    char *vit = nat;
    char d[10] = "  ";
    while (dest = strstr(nat, d)) {
        memmove(dest, dest + strlen(d), 1 + strlen(dest + strlen(d)));
    }
    printf("\n%s", vit);
    return vit;
    }



int main(void)
    {

    const char *lol = "hello yxi asd izexeen hello lol";
    char asd[10000];
    antikorso(asd, lol);

    }

1 个答案:

答案 0 :(得分:0)

好的,所以你几乎拥有它我认为,改变

URL url = new URL(urlSrt);
URLConnection con = url.openConnection();
con.setUseCaches(false);

memmove(dest, dest + strlen(c), 1 + strlen(dest + strlen(c)));

我认为会这样做。该代码之前已跳过两个空格,因此如果您将其备份到一个位置,则应在副本中包含一个空格。

无论如何,这应该适用于将两个空间折叠到一个空间。你应该测试如果你最终连续三个空格会发生什么。