我有以下代码:
char buf[] = {0x45, 0x76, 0x72, 0x23, 0x12};
int main(void)
{
int i;
for (i = 0; i<=sizeof(buf); ++i){
printf("%c\n", buf[i]);
}
}
我想要做的是buf[i]
在打印出来并让 0x45 读取 0x46。本质上,如何在每个值通过 for 循环时将其加 1?
我有以下代码:
char buf[] = {0x45, 0x76, 0x72, 0x23, 0x12};
int main(void)
{
int i;
for (i = 0; i<=sizeof(buf); ++i){
printf("%c\n", buf[i]);
}
}
我想要做的是buf[i]
在打印出来并让 0x45 读取 0x46。本质上,如何在每个值通过 for 循环时将其加 1?
采用+
for (i = 0; i<sizeof(buf); ++i){
printf("%c\n", buf[i] + 1); // print the incremented value
//printf("%c\n", buf[i]++); // increment the printed value
}
你加1:
#include <stdio.h>
char buf[] = { 0x45, 0x76, 0x72, 0x23, 0x12 };
int main(void)
{
int i;
for (i = 0; i < sizeof(buf); i++)
printf("%c\n", buf[i] + 1);
}
就如此容易!
如果您想要更改和打印缓冲区中的值,那么您可能会使用++buf[i]
.buf[i] + 1
请注意,如果char
是有符号类型并且存储在数组的某个元素中的值等价于0xFF
,则向其添加 1 是未定义的行为(尽管您很可能会打印 ASCII NUL '\0'
)。