ユーザー入力を検証し、正規の文字(0-9、A-Z、およびa-zの組み合わせ)のみを入力するようにします。Cでscanfを使用している正規表現を一致させる
これは私が持っているものですが、 "adsifj%a %% dosif"のような一致する文字列です。私は欲しくない。それらの無効な文字が最初にあった場合は一致しません。これをどうすれば解決できますか?
編集:
int main(){
char name[128];
int match = scanf(" %[0-9a-zA-Z^\n]", name);
printf("%d", match);
if (match == 1){
printf("Matched");
}else{
printf("Invalid");
}
return 0;
}
変数の一致は、まず文字の配列(別名文字列)である必要があります。 – Module
スキャンセットの '^'は疑わしいです。 – EOF
'scanf'は真の正規表現をサポートしていないので、あなたが望むことをしません。別の方法としては、文字列を読み取ってから、文字列を 'strspn'でチェックすることです。 – user3386109