arrays - 将字符写入 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)
// +
// +
意味着角色仍然以某种方式存在?谢谢你。
解决方案
推荐阅读
- android - ViewPager.OnPageChangeListener 片段中的接口
- amazon-web-services - AWS Lambda event.requestContext.identity.cognitoIdentityId 返回 null
- javascript - 谷歌的 recaptcha 扰乱了 html 5 验证
- python - Python继承:从另一个python文件导入
- python - 如果没有一行 for 循环,如何编写此 Python 代码?
- tensorflow - import tensorflow.contrib.layers as layers reported an error
- android - 将逻辑从适配器移动到片段 - 错误:找不到视图 ID
- java - 来自另一个线程的 JDBC 连接阻止访问查询执行
- django - Django Channels - 连接到外部 Websocket
- docker - 在 jwilder/nginx-proxy 网络上隔离容器