创建一个用零填充的特定维度的文件

标签 c string merge

我正在尝试创建一种方法,在给定多个字符串的情况下,将它们合并在一起。现在,这就是我想出的。 main 纯粹是为了测试,所以最后我一次只有一个部分字符串,该部分在完整字符串中的位置,以及我需要放置这些部分的最终字符串。

int mergeParts(char* text, char* part, int position){
    int printSpot = position * CONTENTSIZE;

    strcat(text[printSpot], part);
    printf("%s\n", text);

    return 0;
}

现在,这段代码的问题是段错误,我尝试了多种方法,但唯一似乎有效的方法是使用 strcat(text, part); 而不使用“位置”必须复制其中的字符串部分。

#define CONTENTSIZE 10
int main(){
    int i;
    char* part1 = "This is a ";
    char* part2 = "test with ";
    char* part3 = "something ";
    char* part4 = "that i wro";
    char* part5 = "te in it";

    int totParts = 5;
    char* parts[totParts] = {part1,part2,part3,part4,part5};
    int stringSize = totParts * CONTENTSIZE;
    char* finalString = malloc(stringSize);

    for(i = 0; i<totParts; i++){
        mergeParts(finalString, parts[i], i);
    }

    return 0;
}

我怎样才能做到这一点,为字符串指定复制部分的位置。

我可以给你一个很好的例子来更好地解释我正在寻找的是:

我有一个空字符串"----------------------------"

我必须在里面写“This”; “是一个”; “考试”; “请”; “f”; "文本";

如果我收到 "exam";,我的字符串中的结果必须是 "------------ exam-------- ------"。 然后我收到“文本”;所以结果将是 "------------ exam------------ text"

依此类推,直到我得到 "This is an example of the text";

最佳答案

似乎strcat(text[printSpot], part);是重点。我认为你应该使用 strcat(&(text[printSpot]), part);反而。 text[printSpot]将具有实际的字符数据,如 'e' ,而不是 strcat 所需的字符串地址.

或者您可以使用 strcat(text+printSpot,part)很简单。

关于创建一个用零填充的特定维度的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49197349/

相关文章:

c - 如何将字符串中存储的数字与字母分开

python - "Merge"替换 Keras/Tensorflow/Python3

linux - 将 .svn 目录从结帐复制到非结帐以使其成为结帐

c - 如何实现ConnectBlue蓝牙模块中使用的串口配置文件链接命令?

c - 指针 - 对内存位置的不一致访问

javascript - 如何使用 .match javascript 方法来搜索数组和字符串?

PHP 在空值上合并数组

c - 如何将元素移动到 c 中动态分配的 char ** 指针的右侧?我在正确的轨道上吗?

用 C 实现的干净、独立的 VM,编译代码大小在 100-200K 以内?

java - 如何从多行字符串中删除特定行