今天为了使屏幕的文字左对齐, 特意写的限制混合字符显示数量的小程序。
先放上代码吧。
#include <stdio.h> #define DISPLAY_NAME_WORD_NUM 5 #define LENGTH 20 static void LimitDisplayLength(char* text) { int i,count; i=0; count=1; while((text[i]!='\0')&&(count<=DISPLAY_NAME_WORD_NUM)) { if((text[i]>>8)==0) //最高位为1,说明是汉字 跳两位 i=i+1; else i=i+2; count++ ; printf("i=%d\n",i); printf("count=%d\n",count); } if(text[i]!='\0') { text[i]='\0'; } while(count<=DISPLAY_NAME_WORD_NUM) { text[i++]='*'; count++; } text[i]='\0'; } int main() { char string[LENGTH]="da啦啦啦啦d"; char lad[LENGTH]="啦"; LimitDisplayLength(string); printf("%s\n",string); LimitDisplayLength(lad); printf("%s",lad); }
思想是这样子的:限制文字的数目为N,如果多余X个,则cut掉N-X个;如果少于N个,则填充空格。
由于输入的文字可能存在汉字和字母或是数字的混合,所以主要问题是判断当前字节是字母还是汉字。
代码很简单就不说了。唯一的是测试 当前字节是不是汉字这块..网上找得都是坑爹的..没几个可以实现的.....
限制汉字字母数字混合字符显示数目的简单小程序C
最新推荐文章于 2022-04-04 16:47:51 发布