c - 如何通过检查分隔符在字符串中添加字符?

标签 c string

我的程序中有一个字符串,需要在“/”之前用另一个字符串值对其进行更改。

源字符串:qos-tree/output_rate 目标字符串:qos-tree-2/output_rate

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

void append(char* s, char c)
{
        int len = strlen(s);
        s[len] = c;
        s[len+1] = '\0';
}

int main(void)
{
        char str[256] = "qos-tree/output_rate";
        char c = "a";

        append(str, c);

        printf("%s\n", str);
        return 0;
}

这是我到目前为止所做的,我认为这里的逻辑是错误的。有人可以指导我纠正它吗? 执行完成后,源字符串在“/”之前应有一个“-2”

最佳答案

void insert_before_ch(char *s, const char *ins, char c){
    char *p = strchr(s, c);
    if(p){
        size_t len = strlen(ins);
        memmove(p + len, p, strlen(p)+1);
        memcpy(p, ins, len);
    }
}

int main(void){
    char str[256] = "qos-tree/output_rate";

    insert_before_ch(str, "-2", '/');

    printf("%s\n", str);
    return 0;
}

关于c - 如何通过检查分隔符在字符串中添加字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27863675/

相关文章:

c - 如何在 C 中声明具有不同数据类型和不同大小的 3D 数组?

java - 如何访问两个特殊字符之间的字符串,它们的顺序很重要?

javascript - 将数组转换为字符串,并添加数组每个元素的数字?

c - SQLite3 sqlite3_open 成功,sqlite3_exec 失败并显示 CANTOPEN(错误 14)

关于链接列表中节点的混淆

c - 如何使用 C 以编程方式创建 PDF 文件?

C:sizeof()、sizeof()和sizeof

java - 获取由 xCharsxInts 组成的字符串的子字符串

string - 在 apex Controller 中将我的 word 文档的 blob 内容转换为字符串

c - 拼写检查算法