将Char值增加一

时间:2012-08-24 17:16:14

标签: c

我有以下代码:

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?

2 个答案:

答案 0 :(得分:8)

使用+

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 :(得分:3)

你加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,则向其中添加一个是未定义的行为(尽管您很可能会打印ASCII NUL '\0')。