接上一题,对字符串里的每一个字符进行校验,满足格式为两个数字和“加减乘除”运算符相间,例如:“1+3*5-7/8+9”。
C语言代码如下:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define true 1
#define false 0
typedef int BOOL;
int checkString(char *sInput){
int iLenInput;
iLenInput = strlen(sInput);
for(int i=0;i<iLenInput;i++){
if(i%2 == 0){
if(sInput[i]<0x30 || sInput[i]>0x39){
printf("The error index:[%d] character [%c]\n",i+1,sInput[i]);
return false;
}
}
else{
if(sInput[i]!='+' && sInput[i]!='-' && sInput[i]!='*' && sInput[i]!='/'){
printf("The error index:[%d] character [%c]\n",i+1,sInput[i]);
return false;
}
}
}
return true;
}
int main( int argc,char *argv[]){
char sInput[1024];
int iResult;
memset(sInput,0,sizeof(sInput));
strcpy(sInput,"1+2--3*5*2/3-9/3*5");
printf("sInput:[%s]\n",sInput);
if(!checkString(sInput)){
printf("The string is error!\n");
return -1;
}
return 0;
}