字符串格式化,对于液晶显示占位比较有用
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。 %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。 %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 %m.ns:输出占m列,但只取字符串中左端n个字符。这n个在m列的右侧,左补空格。 %-m.ns:其中m、n含义同上,n个在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
自己尝试的结果为:
%m.ns m>n时,总共输出m个字符,其中包括n个字符,(m-n)个空格 m<n时,最多输出n个字节,最少输出m个字节,不够m字节的补空格
char str[]="0123456789"; char str1[]="01"; printf("%3.5s\r\n",str); //01234 printf("%5.3s\r\n",str); //__012 printf("%3.3s\r\n",str); //012 printf("%5.5s\r\n",str); //01234 printf("%7.5s\r\n",str); //__01234 printf("%3.5s\r\n",str1);//_01 printf("%3.3s\r\n",str1);//_01 printf("%5.3s\r\n",str1);//___01