c
1 2int check_number(char str[]); 3 4 5int main(void) { 6 7 char map[WORLD_H][WORLD_W]; 8 9 10 11 int checkno; 12 char inva[50]; //入力された値 13 14 printf("数字を入力してください(乱数) 文字または文字列を入力してください(ファイル読み込み) 21行以上エラー"); 15 scanf("%s", &inva); 16 17 checkno = check_number(inva); //数値か文字、文字列かのチェック。 18 19 20 if (checkno == -1) { //入力された値が文字か文字列だった場合 21 22 fileop(map); 23 } 24 25 else { //入力された値が数値だった場合 26 27 28 srand((unsigned)inva); 29 30 init_map(map); //初期化 31 } 32 33} 34 35 36//入力されたものが数値か文字、文字列か判定 37int check_number(char str[]) { 38 39 int retval = 0; 40 int len; 41 int i; 42 43 len = strlen(str); 44 45 if (len > 21) return -1; //21桁以上はエラー 46 47 for (i = 0; i < len; i++) { 48 49 if (str[i] < '0' || str[i] > '9') return -1; //0~9以外の文字val はエラー 50 51 retval = retval * 10 + (str[i]); 52 53 54 } 55 56 return retval; 57 58 59} 60
scanfで入力されたものが数値か文字、文字列かの判定を上記のコードでしました。(指摘点があればアドバイスお願い致します)
入力された文字、文字列の 後ろ4文字が .txt だったらテキストファイルを読み込み、違ったらテキストファイルではありません。 としたいのですが 一般的にどのようにして 後ろの文字が ,txtだったらのように 判定するのでしょうか?
回答3件
あなたの回答
tips
プレビュー