zhu88 发表于 2022-10-8 21:33:30

初学者有不懂的问题

#include"stdio.h"
int main()
{
   int a,b,c,d,e;
   a='c',b='h',c='i',d='n',e='a';
   a='c'+4;b='h'+4;c='i'+4;d='n'+4;e='a'+4;
   prinft("%c%c%c%c%c",a,b,c,d,e);
   return 0;
}


这是我们第一次上实践课老师布置的让我们把china转变为glmre,然后我不李姐那个+4,准确来说都不理解,我们老师只是出题然后也讲个大概。
{:10_266:} 谢谢大佬,真的好茫然第一次学

jackz007 发表于 2022-10-8 21:47:35

本帖最后由 jackz007 于 2022-10-8 22:13 编辑

      计算机内的字符都是用它们的 ASCII 编码来记录的,就是说它们就是数值为 0 ~ 127 的整型数,例如,'A' 是 65,'B' 是 66,'C' 是 67,'a' 是 97,'b' 是 98,'c' 是 99,明白了这个道理就好办了,那么,一个字符 + 4,就是字母表中,位置排在这个字符后面的第 4 个字母。
      例如,'c' + 4 = 'g' , 'h' + 4 = 'l' ,'n' + 4 = 'r' , 'a' + 4 = 'e' 等等。
#include <stdio.h>

int main(void)
{
      char b[] = {'c' , 'h' , 'i' , 'n' , 'a'}                  ;
      int i                                                   ;
      for(i = 0 ; i < sizeof(b) ; i ++) printf("%c" , b)   ;
      printf("\n")                                              ;
      for(i = 0 ; i < sizeof(b) ; i ++) printf("%c" , b + 4) ;
      printf("\n")                                              ;
}
      编译、运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
china
glmre

D:\\C>

wp231957 发表于 2022-10-9 09:02:04

深度了解ascii码,你就会知道了

gandixiwang 发表于 2022-10-9 14:12:43




这个就是ascll表,把你上面的字符一一对应上去就知道了(看十进制那列)

三木先生 发表于 2022-10-9 17:43:50

按照26个字母的顺序,每个都往后移4位
页: [1]
查看完整版本: 初学者有不懂的问题