我正在尝试以XXXXXXXXB格式获取用户输入的字符串,其中X是数字,B是字符。然后我想验证输入是否是正确的格式并检查Char以查看是否是A,B,C,D所以我可以把正确的东西拿出来
我遇到的问题是如何检查char的值? 这是我的代码
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
void validate(char array[]){
int i=0;
for(i=0;i<9;i++){
if(isdigit(array[i])){
printf("Valid int %d at %d\n",array[i],i);
}
else if(isalpha(array[i])){
printf("Valid alpha %c at %d\n",array[i],i);
switch(isalpha(array[9])){
case 'a':
printf("Char a");
break;
case 'b':
printf("Char b");
break;
case 'c':
printf("Char c");
break;
case 'd':
printf("Char d");
break;
}
}
}
}
int main(void) {
printf("Please Enter a string in format xxxxxxxxb x=digit b=char\n");
fflush(stdout);
char input[9];
gets(input);
validate(input);
return 0;
}
答案 0 :(得分:0)
您可能需要考虑两件事 -
1)检查索引是否合适 - array[9]
是数组10th index
的值
2)检查区分大小写 - b
与B
不同。因此,您可能希望使用ascii
值进行比较,或者在switch
答案 1 :(得分:0)
您没有检查阵列中的正确位置。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
void validate(char array[]){
int i=0;
for(i=0;i<8;i++){
if(isdigit(array[i])){
printf("Valid int %d at %d\n",array[i],i);
}
else if(isalpha(array[8])){
printf("Valid alpha %c at %d\n",array[i],i);
switch(isalpha(array[9])){
case 'a':
printf("Char a");
break;
case 'b':
printf("Char b");
break;
case 'c':
printf("Char c");
break;
case 'd':
printf("Char d");
break;
}
}
}
}
int main(void) {
printf("Please Enter a string in format xxxxxxxxb x=digit b=char\n");
fflush(stdout);
char input[9];
gets(input);
validate(input);
return 0;
}