【问题标题】:Character Insertion in Character Array C字符数组 C 中的字符插入
【发布时间】:2017-08-31 06:25:45
【问题描述】:

我正在尝试在字符数组中插入一个特殊字符“-”并希望将其保存在另一个字符串中。要插入的字符是使用循环完成的。

输入:

actgagc

atgac

输出

actgagc

a-tga-c

在第二个字符数组中 - 被插入以代替缺失的字符。

程序在 JAVA 中使用简单的字符串连接函数完成,但无法为 C 语言进行字符插入。

Java 代码是:

while (k > 0 && l > 0) {
            if (condition 1) {
                r_string1 += string_1[k - 1];
                r_string2 += string_2[l - 1];
                k--;
                l--;
            } else if (condition) {
                r_string1 += "-";
                r_string2 += string_2[l - 1];
                l--;
            } else {
                r_string1 += sring_1[k - 1];
                r_string2 += "-";
                k--;
            }
        }

在 C 语言中,我试图对字符数组中的字符插入做同样的事情。用strcat、memmov函数试过,没有结果。

【问题讨论】:

  • SO 不是人力转译服务。向我们展示您迄今为止在 C 中尝试过的内容。现在,您有一些 Java 伪代码,但您没有向我们展示您尝试在 C 中实现相同目标的内容。请阅读帮助部分了解什么是“好问题”

标签: c arrays string character concatenation


【解决方案1】:

您需要为新字符串分配空间,所以不要忘记释放它...

char * f(char *s1, char * s2)
{
    char *s3 = malloc(strlen(s2)+1);
    char *ret = s3;

    while (*s2)
    {
        if (*s1++ == *s2)
            *s3 = *s2++;
        else
            *s3 = '-';
        s3++;
    }
    *s3 = '\0';
    return ret;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2020-12-01
    相关资源
    最近更新 更多