只允许输入0-4字符
while(1){
char i[100];
print();
scanf("%s",&i[0]);
if(strlen(i)!=1||i[0]<'0'||i[0]>'4'){ //检验输入
printf("输入错误,请输入0-4中的数字n");
continue;
}
return 0;
}
1.strlen(t)!=1是为了防止输入第一个字符为0-4的含有多个字符的字符串,限制了字符串长度
基础知识:
参考文章:C语言之ASCII码与转义字符与代码间关系_枫叶林!的博客-CSDN博客_ascii码与字符的关系
1.c语言中对 字符串常量 是按照 字符数组 处理的
#includeint main(){ char *string="aaaa"; printf("%sn",string); return 0; }
1.c语言对字符串常量“aaaa”按照字符数组进行处理,在内存中开辟了一个字符数组用来存放该字符串常量。但是这个数组没有名字,只能用指针变量来引用。
2.对于字符指针变量string初始化,实际上是把字符串第一个元素的地址(即存放字符串的字符数组的首元素地址)赋值给指针变量string,使string指向字符串的第一个字符。
3.可以通过指针变量输出字符串,输出时需用%s格式符,则系统会输出string所指向的第一个字符,然后自动使string加1,使之指向下一个字符,再输出该字符…直到遇到字符串结束标志‘ ’为止
4.在内存中字符串最后被自动加上一个‘n’
2.字符型数据 是以 ASCII代码 存储在存储单元中
#includeint main() { char ch = '6'; int i = 54; printf("%d ", ch); //以整形形式输出字符串ch printf("%c",i); //以字符串形式输出整数i return 0; }
由结果可知char可直接转换为int型值,int也可直接转换为char字符,十进制54对应字符为‘6’



