首页 > 解决方案 > 将字符写入 char 字符串,添加了字符,但它不存在 (C)

问题描述

我有一个 char 字符串,我需要将其写入另一个 char 字符串并进行一些修改

    char mem[32];
    char request[16] = "b44849";


    if (request[0] == 'b') {            
            for (int i = 0; i < 16; i++) {                
                if (i < 8) {
                    mem[i] = '-';
                    }
                else {
                    if (i < (strlen(request) + 8)) {
                        mem[i] = request[i-7];
                    }
                    else {
                    mem[i] = '+';
                        }
                    }
                }
            }

规则是mem中的前 8 个字符必须是 '-',我需要去掉 request 的第一个字符,mem顶部添加request的剩余部分,当你将所有request写入mem时,写 '+'直到循环结束(在 i = 16)

所以我需要上面的例子是:

printf("%s\n", mem);
// should yield --------44849+++
// i.e. fill first 8 with minuses, then write request without first char, and then finish with pluses

然而我的结果是:

printf("%s\n", mem);
//--------44849
// and no more pluses

奇怪的是优点仍然存在:

printf("%c\n", mem[13]);
printf("%c\n", mem[14]);
printf("%c", mem[15]);
// prints:
// (empty character)
// +
// +

意味着角色仍然以某种方式存在?谢谢你。

标签: arrayscchar

解决方案


推荐阅读