• 締切済み

英数字の判定

dtmの回答

  • dtm
  • ベストアンサー率37% (23/62)
回答No.2

char buf[256]; char* p; FILE* is; /* 入力 */ FILE* os; /* 出力 */ while (p = fgets(buf, 255, is)) {     while (*p && !isdigit(*p))         p++;     if (*p)         fputs(buf, os); } アプローチは全く同じで,isdigit を使います.

関連するQ&A

  • 英数字を並べて大きな英数字を表す(アスキーアートの様な)

    タイトルの通り、大きな文字で表したい英数字そのものを並べて 大きな英数字を表す事をなんて呼ぶのでしょうか? これも「アスキーアート」と呼ぶのでしょうか? 例えば、英字の「E」を大きな「E」で表したい時 EEEEEEEEEEEE EE EEEEEEEEEEEE EE EEEEEEEEEEEE 「H」の場合 HH        HH HH        HH HH        HH HHHHHHHHHHHH HH        HH HH        HH HH        HH の様に、そのものの英字を使ってそのものの英字を大きく 見せる、というもの。 詳しい情報、Webページをご存知の方、お教え願います。 英数字(大文字小文字に数字 26*2+10=62文字文)全てを 集めたいと思っています。「#」や「%」の様な記号もあれば ベストなんですが。 1つ1つこつこつと作れない事もないのですが、簡単に収集 できればと思ったのですが、何せまず呼び名も名称も分からない ので、検索するのもあぐねている状態で。 よろしくお願いします。

  • 英数字のチェックをしたい ACCESSのVBAで

    ACCESSのVBAなんですが あるフィールドが英数字かどうかチェックしたいのですが つまり、数字か英字のみで、そのフィールドが構成されているか チェックしたいのです 、(カンマ)やカッコが含まれていれば、エラーと判定したい のですが、 よろしくお願いします

  • セルの値が同じ行を条件に従って行削除するマクロ

    A~E列までデータがあり 行数は約30,000行あります。 A列は半角英数字と-で桁数は11桁又は14桁です。 数字のみもあれば数字と英字の組み合わせもあります。 (英字はどこの桁にあるか何個あるかは不規則です) 例 ABCD123456789X 124345678901234 55555-55555 ABC12345DEF678 E列には半角の 1 か 2 しかありません。 A列が同じ値の行を検出して重複している行は1行だけ残して 後は行削除をしたいです。 行削除はE列の値によって判定したいです。 重複行は1つの値に対して何行あるか不明です。 30,000行のうち、重複行を削除すると10,000行くらいになる予定です。 (1)重複行にてE列の値が1だけの場合    どれでもいいので1行残して残りは行削除 (2)重複行にてE列の値が2だけの場合   どれでもいいので1行残して残りは行削除 (3)重複行にてE列の値が1も2もある場合   E列の値が2の行をどれでもいいので1行残して残りは削除 例 (1) 1234567890XXXX-1 1234567890XXXX-1 1234567890XXXX-1 ↓ 1234567890XXXX-1 (2) 123ABCDE901234-2 123ABCDE901234-2 ↓ 123ABCDE901234-2 (3) 12345678901234-1 12345678901234-2 ↓ 12345678901234-2 ABC45678901234-1 ABC45678901234-2 ABC45678901234-1 ABC45678901234-2 ↓ ABC45678901234-2 手作業では5時間かかりましたがミスだらけです。 まだ数ファイル残っており手作業では厳しいのでマクロを 作成したいのですが、どう記述していのかまったく検討が付きません。 どうかよろしくお願いします。

  • ファイル読み込み EOF 判定

    数字の羅列した単純なテキストファイルを読み込ませたいのですが、 以下のようにすると、途中で改行などで一行あけた場合、そこで読むのを ストップしてしまいます。 if (fgets(buf, sizeof(buf), fp) == NULL) { 改行にくじけることなく、ファイルの最後まで読み込ませるにはどうしたら いいのでしょうか。 ちなみに、以下のようにやると、   while(getc(fp) != EOF){ こんどは改行をものともせず、ファイルのお終いまで読んでくれるのですが、 2バイト文字(頭一文字が化ける)、のっけ一行目に数値(10桁)を置くと 一文字かけて9桁になってしまいます。 2行目以降はちゃんと10桁です。(一行目に改行をいれて、2行目以降に書くと大丈夫のようです。変) 簡単なようで、つまってます。どうかよろしくお願いします。

  • 英字を含まない文字行を削除

    英字を含まない文字行を削除 1491 1492 1493 1494 1495 1496 1497 1498 1499 149A 149B 149C 149D 149E 149F このような16進数が書かれたテキストファイルがあります。 149A 149B 149C 149D 149E 149F このように英字が含まれていない数字のみの行を削除する方法を教えてください。

  • ファイル関数について

    こんばんはです。 次のソースは、構造体の中にファイルから読み込んだDATAを格納する部分です。 ファイルに書き込む際に for(i = 0;i<AllMen;i++){  fputs((person + i)->name,fp);  fputs("\n",fp);//(1)  fputs((person + i)->mail,fp);  fputs("\n",fp);//(1) } fclose(fp); と、上記の様に、(1)のところで無理やり改行をいれて、ファイルに書き込んでます。 fgetsで一行分読み込むとき、nameとmailを分けて取りたいからです。 javaでは、newLineと言うものがあり、\nをしなくてもファイルには 次の行に移動する手段がありますが、Cには無いのでしょうか? fgetsする際に\nがどうしても不都合なのです。 過去に同じ経験のある方、高スキルの方のご回答いただければ嬉しいです。 よろしくお願いいたします。

  • ファイルからの全文読み込み

    ファイルから全文読み込むにはどのようにしたらよいのでしょう? ・1行あたり最大100文字まで ・何行あるか不明 ・すべて半角英数字 ・途中に半角スペースあり 全文読み出し、配列に取っておきたいと思いますが、 具体的にどうしたらよいのかわかりません。 fgetsですと最後の1行しか取れませんし・・

  • 続・EOF判定されない

    前回「EOF判定されない」で回答、アドバイスしていただいた a-kumaさん、Haizyさん、inthefloiさん、anisolさん、leaz024さん、cherry-moonさん 本当にありがとうございました。頂いたアドバイスを試行してみましたが、なぜか、ダメでした。(T-T) 環境が悪いのかもしれませんね。 あれから、feof関数を使わずにファイルの終わりを算出して判定するなどの方法を試みましたが、EOF判定だけのために妙に複雑になってしまい、自分でも納得がいかなかったので、再度こちらで皆さんの意見をもらおうと投稿させてもらいました。 今回は質問の仕方を変えて、モジュールの仕様を挙げますので、それから「自分ならこうする」というようなお答えを頂けたらと思っています。 feof関数を使用しても、その他の方法でもなんでもアリです。(^^) 「ファイル一行入力モジュール」(仕様) 1.このモジュールは実行されると「inputfile.txt」から一行だけ(改行まで)読み込み、終了します。次に実行された時は、その次の行を読み込みます。 2.ファイルの終端に達したら、リターンコードに'4'を設定し、終了する。 以上これだけ。(^^; 「inputfile.txt」(仕様) インプットファイルは、テキストファイルで、一行30バイトの文字列を格納しています。ファイルの総バイト数は不定です。 文字コードは「Shift-JIS」「改行=CR+LF」、ファイルの最後にEOF制御文字を設定しています。 「インプットファイルの内容」  1行目 AAAAAAAAAABBBBBBBBBBCCCCCCCCC[改行文字]  2行目 DDDDDDDDDDEEEEEEEEEEFFFFFFFFF[改行文字]           ・           ・           ・ n-1行目 XXXXXXXXXXYYYYYYYYYYZZZZZZZZZ[改行文字]  n行目 [EOF] 「ここはこうしたらいいんじゃないかな?」的な事でかまいませんので、是非みなさんの意見を聞かせてください。

  • EXCEL2000で並べ替えをしたいのですが?

    あるフィールドに数値(文字扱い)と文字列が混在しています。 項目 201 2AB 2CD 111 2桁目は英字→数字の順にしたいのですが、降順で並べ替えると、 項目 2CD 2AB 201 111 になります。 これを何とか 項目 111 2AB 2CD 201 と並べ替えられないでしょうか?

  • 分数の問題、数字パズル

    c/ab+f/de+i/gh=1のaからiに1から9の数字を1個ずつ入れる。 という問題の解き方を教えて下さい ab、de、ghはそれぞれa x b、d x e、g x hを示しています。