https://blog.csdn.net/qq_36324796/article/details/78920390?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
参考这位老哥写的。
一开始我用了很多if-else,后面才发现可以用switch。
但我觉得这个题出得不好,不明确,比如第二十七到三十二号字符怎么处理就没有说。(我也看不懂这几位都是干啥的,除了空格)
我打印的格式是 字符:ACSII码
int main(void){
char ch;
int num = 0;
printf("input your words:");
while((ch = getchar()) !=EOF){
switch(ch){
case '\n':
printf("%c : \\n ",ch);
num++;
break;
case '\t':
printf("%c : \\t ",ch);
num++;
break;
default:
if(ch<' '){
printf("%c : ^%c ",ch,ch+64);
}else{
printf("%c : %d ",ch,ch);
}
num++;
break;
}
if(num % 10 == 0){
printf("\n");
}
}
return 0;
}
这道题对我来说有价值的知识点是:一排打印几个不一定需要二维数组,也可以用标志变量控制,会简单一点。