Hi guys I really need some help with one automatic funtion... It gets a string from the keyboard and checks if this string is a valid file name for Windows (like if it has symbols like ^ or & in it then it's not). It can only have letters from the alphabet, _ , and numbers and ofc. the '.' . Can someone help me fix it I will be very gratefull if you do Thank you! This is my code:Code:int main() {int stat=0; int br=0,br1=0; int ch; int i=0; char str[256]; printf("Enter file name:"); gets(str); for(i=0; i<256; i++) { ch=str[i]; switch(stat) { case 0: if( ch=='A'-'Z' || ch=='a'-'z' ) { br++; stat=1; break; } if(ch=='_') { br++; stat=5; break; } else { stat=7;break;} break; case 1: if(ch=='A'-'Z' || ch=='a'-'z' || ch=='0'-'9') { br++; stat=5; break;} if(ch=='.') { br=0; stat=6; break; } if(ch==':') { br=0; stat=2; break; } else { stat=7; break;} break; case 2: if(ch=='A'-'Z' || ch=='a'-'z' || ch=='_') { br++; stat=5; break; } if(ch=='\\') { br1++; stat=3; break; } break; case 3: if(ch=='A'-'Z' || ch=='a'-'z' || ch=='_') { br++; stat=4; break;} else { stat=7; break;} break; case 4: if(ch=='A'-'Z' || ch=='a'-'z' || ch=='0'-'9' || ch=='_') { br++; stat=4; break; } if(ch=='.') { br=0; stat=6; break; } if(ch=='\\') { br1++; stat=3; break; } if(br>8 || br1>8) { stat=7; break; } break; case 5: if(ch=='A'-'Z' || ch=='a'-'z' || ch=='0'-'9') { br++; stat=5; break; } if(ch=='.') { br=0; stat=6; break; } if(br>8) { stat=7; break; } break; case 6: if(ch=='A'-'Z' || ch=='a'-'z' || ch=='_' || ch=='0'-'9'){ br++; stat=6; break;} if(br>3) { stat=7; break;} break; case 7: break; } } if(ch==0 && stat!=7) printf("Valid name"); if(stat==7) printf("Name not valid\n"); return 0; }