我有一個從我的大學關於電話簿的小項目。我有一個小問題來驗證名稱的第一個字符,我使用ascii來驗證名稱的第一個字符。名稱的第一個字符應該是(A-Z)或(a-z),有人可以幫我解決我的問題嗎?謝謝!在c編程中的輸入驗證
#pragma warning (disable:4996)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char name[30];
int flag;
int i;
printf("Add New Contact\n");
start:
do {
printf("input name[1..30 chars]: ");
scanf("%s", name); fflush(stdin);
for (i = 0; i < strlen(name); i++) {
if (name[1] >= 65 && name[1] <= 90 || name[1] >= 97 && name[1] <= 122) {
flag = 1;
}
else {
printf("First letter of name should be an alphabet (A-Z or a-z)\n");
getchar();
goto start;
}
}
} while (flag == 0);
getchar();
return 0;
}
是一個天使,直到你已經編程10000小時不使用goto語句。 – Bathsheba
閱讀每個使用功能的文檔,例如[scanf的](http://man7.org/linux/man-pages/man3/scanf.3.html)。編譯所有警告和調試信息('gcc -Wall -Wextra -g')。使用調試器('gdb')。您的代碼不可移植到具有非ASCII字符編碼的系統(例如EBCDIC) –
鑑於您是Stackoverflow的新手,請閱讀[問]。 – dandan78