字符数组C中的字符插入

时间:2017-04-05 14:47:10

标签: c arrays string character concatenation

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

INPUT:

actgagc

atgac

输出

actgagc

一个-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函数但没有实现结果。

1 个答案:

答案 0 :(得分:0)

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

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;
}