C语言ASCII码转汉字方法 |
您所在的位置:网站首页 › C语言如何打印出中文 › C语言ASCII码转汉字方法 |
说在前头:
之前同学给我发了一个输出彩色心的代码,效果如下图。感觉很新奇,就研究了一下。这个心输出时每个字符之间有一毫秒的间隔,且中间有“我喜欢你!”的汉字。在运行至下图的效果之后,输入任意字符就会进入一个一直输出心的无限循环中,但是其颜色会与之前输出的不一样。 先告诉你:两个特定的ASCII码,紧挨着按字符型(%c)输出就会组成一个汉字! 1、对于ASCII码中的字符,一个字符占一个字节的空间。而一个中文汉字(包括中文标点)占两个字节的空间。 2、对于ASCII码,33、-223、289表示的是同一个字符‘ !’,其实就是以256为一个循环。 3、任意两个属于[128,256](由2可知一些数可以通过加或减256转化为该区间的数)的ASCII码都可以组成一个汉字,理论上所有的汉字都可以用ASCII码表示。 怼个代码先 #include int main() { int a[]={196,227,186,195,194,240},i;//数组a[]中的六个数表示ASCII码值 for(i=0;i char str[]="很简单"; int i=0; while(str[i]!='\0') { printf("%d ",str[i]); i++; } printf("\n"); return 0; }附上彩色心代码 #include #include #include #define U 0.1 #define V 0.053//U、V用于控制心的形状 void SetColor(unsigned short ForeColor,unsigned short BackGroundColor) { HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,(ForeColor)|(BackGroundColor)); // SetConsoleTextAttribute函数:是系统设置控制台背景色和前景色的函数 ,在头文件windows.h中 // Set Console TextAttribute 汉意:设置控制台的文本属性 /* 原型为: BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes) */ //hCon:是一个 HANDLE 类型的变量,句柄,某种结构的唯一标识(其值是一个整型数) //ForeColor:前景色(字符颜色);BackGroundColor:背景色,用十六进制数表示 } int main() { int i,s=0,t,a=10,b=11,c=12,d=13,e=14; int z[] = {32,32,206,210,207,178,187,182,196,227,33,32,32};//" 我喜欢你! " 的 ASCII码 float x,y,m; for(y=1.3; y>=-1.1; y-=U) { for(x=-2; x if(y>=1.3-10*U||y SetColor(a,0); printf("l"); } if(s%4==2) { SetColor(e,0); printf("o"); } if(s%4==3) { SetColor(c,0); printf("v"); } if(s%4==0) { SetColor(d,0); printf("e"); } } else { for(i = 0; i s++; if(s%4==1) { SetColor(a,0); printf("l"); } if(s%4==2) { SetColor(e,0); printf("o"); } if(s%4==3) { SetColor(c,0); printf("v"); } if(s%4==0) { SetColor(d,0); printf("e"); } } else { SetColor(b,0); printf("%c", z[i-15]);//输出"我喜欢你" Sleep(50); //延时函数,以毫秒为单位,包含在头文件windows.h中 } } break; } } else printf(" "); Sleep(1); } printf("\n"); } printf("请按任意键继续!"); getchar(); while(1) { system("cls");//清屏操作 t=a; a=b; b=c; c=d; d=e; e=t; for(y=1.3; y>=-1.1; y-=U) { for(x=-2; x if(y>=1.3-10*U||y SetColor(a,0); printf("l"); } if(s%4==2) { SetColor(b,0); printf("o"); } if(s%4==3) { SetColor(c,0); printf("v"); } if(s%4==0) { SetColor(d,0); printf("e"); } } else { for(i = 0; i s++; if(s%4==1) { SetColor(a,0); printf("l"); } if(s%4==2) { SetColor(b,0); printf("o"); } if(s%4==3) { SetColor(c,0); printf("v"); } if(s%4==0) { SetColor(d,0); printf("e"); } } else { SetColor(e,0); printf("%c", z[i-15]); } } break; } } else printf(" "); } printf("\n"); } Sleep(1000); } return 0; } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |