今天做一道题,题目要求大概描述一下就是输入一串字符串,有符号有数字如“0-123-456”
然后要对其中的数字做一定的处理(格式时候固定的,即只用将数字改变一下即可)我当时是这样处理的:(错误滴~)
char a[3];
scanf("%c-%c-%c",&a[0],&a[1],&a[2]);
将“0”,“123”,“456”当成三个数,后来老师讲题时我才晓得在char型中数字范围只能是‘0’~‘9’
就是“123”在char型中为‘1’,‘2’,‘3’
这道题正确写法是:
char a[7];
scanf("%c-%c%c%c-%c%c%c",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]);
图示分析为:
例:12345 | 12345 |
---|
例:12345 | 1 | 2 | 3 | 4 | 5 |
---|
其实细想之前做题时,遇到不少这种情况,只是自己不用心,像之前经常做的将字符串中数字,字母,和其他符号分离时,判断条件就是
char a;
if(a>='0'&&a<='9') //筛选数字
else if(a>='a'&&a<='z'||a>='A'&&a<='Z')//筛选字母
else //剩余字符
啊~希望我不要再犯蠢了~~~