字符数组 C 中的字符插入

Posted

技术标签:

【中文标题】字符数组 C 中的字符插入【英文标题】:Character Insertion in Character Array 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 中实现相同目标的内容。请阅读帮助部分了解什么是“好问题” 【参考方案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;

【讨论】:

以上是关于字符数组 C 中的字符插入的主要内容,如果未能解决你的问题,请参考以下文章

请教一个 C语言 字符串数组之间比较的算法,谢谢

在不使用向量的情况下,将字符串分割成C ++中的数组

C++ - 从整数数组中插入和提取字符

如何在firebase中插入数据字符串数组?

C# 连接字符串或字符数组

扫描字符串并将部分插入数组[重复]