• ベストアンサー

NUMERICチェック

cherry_moonの回答

  • ベストアンサー
回答No.1

かなり強引な方法ですが、 x = atoi で整数型に変更して、 sprintf(s, "%d", x) で文字列に戻して、比較するのはどうでしょう? っていうのは冗談で、 1文字ずつ取り出して、'0' から '9' の範囲内かどうかで いいんじゃないでしょうか?

dole
質問者

お礼

ありがとうございます。 atoi,atol,atofを試したのですが、やっぱり、一文字ずつ見ていく方法がいいですね。。。 ということで、一文字ずつチェックしました。

関連するQ&A

  • CString 数値チェック

    C言語初心者です。 CStringの変数に入っている値が数値か判断するにはどうすればいいのでしょうか? 1文字ずつ判断するしかないの?

  • is_numeric関数について

    is_numeric関数の使い方について質問です。 添付ファイルの検索フォームで文字条件検索と数値条件検索それぞれの テキストボックスの検索ボタンを押したとき、入力されている文字に応じて以下 の処理をis_numeric関数で実装するにはどうすればいいでしょうか? PHPに詳しい方いましたら教えて頂きたいです。 ・文字条件検索 未入力:未入力であることを伝えるエラーメッセージの表示 ・数値条件検索 数値入力:数字以外の文字が入力された場合はエラーメッセージを表示(数字が入力された場合は戻り値TRUEを返す) 未入力:未入力であることを伝えるエラーメッセージの表示

  • CArrayのシリアライズの方法を教えてください。

    VC++ 2003, MFC SDIです。 Windowsでプログラムを始めて数週間のものです。 CMyDataという自分で作ったクラスのインスタンスを要素にもつCArrayを作りました。 CArray <CMyData, CMyData> myArray; と宣言して一応要素の追加削除、データの取り出しはスムーズにできるのですが、保存、読み込みの方法がわかりません。 CMyDataのメンバ変数の中身はすべてCStringなので、ドキュメントクラスのSrialize関数内で、ループで、ar.WriteString(myArray[i].getName())見たいに要素をひとつずつテキストに書き込んだり、読み込んだりはできるのですが、できればmyArrayをバイナリで一発保存、読み込みができれば楽かなと思います。 どのドキュメントを読んでもCArrayはSerializeをサポートしているって書かれているんですが、具体的なやり方が見つかりません。 ちなみにCMyDataはCObjectを継承できませんでした。継承すると、myArrayに追加できません。ここもちょっとわからないんですが。。。 どなたかご教授お願いします。

  • oleDBでnumeric形式の小数部分の取得は?

    DBにはpostgresを使用していて、numeric(8,2)の様に定義した項目から VB.netのプログラムでOleDbDataReaderを使用して値を読み取るのですが .GetValueでは123.45 -> 123 という風に整数部分しか読み取れません。 試しに .GetValue(x).Tostringで出力してみたのですが、やはり小数部分が見あたりません。 直接コマンドで見る限り、テーブルには正しく小数以下も格納されています。 現在は、クエリで 100倍して.GetValueで読み込んだ後に100で割っていますが 直接読み込むメソッドがありましたらご教授願います。

  • 基本情報平成4年春の問題

    基本情報平成4年春の問題で問題集の答えが、納得いきません。どなたかよったら 教えてください。 問題 リストヘの登録 次の流れ図中の(a)~(C)に適切な字句を補い,流れ図を完成せよ。 〔流れ図の説明〕 流れ図は,ファイルから数値データを読み込み,配列に格納するとともに,昇順にポイ ンタでつなぐ処理を表す。 (1)配列の要素は,データ領域(DATA)とポインタ領域(POlNTER)からなる。データ領域に は,数値データを読み込んだ順に格納する。ポインタ領域には,各数値データを昇順に 並べた場合,その数値データの直後にくるデータが格納されている配列要素番号を格納 する。1件の数値データをデータ領域に格納するたびに,対応するボインタ領域に値を 格納する。このとき,必要があればそれまでにセットしたポインタ領域の値を修正する。 (2)一番大きい値のデータが格納されている配 列要素のポインタ領域の値は,0にする。 一番小さい値のデータが格納されている配 列要素の要素番号を,変数MlNに格納する。 配列にデータが1件も格納されてし/ない場 合,変数MlNの値は0である。 (3)同じ値のデータが配列中に存在する場合、 先に格納されたデータほど小さい値とみなして処理を行う

  • CString型からdouble型への変換

    C++は初心者です。VC4.0を使っていますがMFCなどは使っていません。 CString型の変数をint型やlong型への変換はなんとかできたのですが、double型へ変換することができずに困っています。atofを使えばいいのだと思い下記のように記述したのですが、コンパイルするとエラーがでます。   CString sample = "0.234";   double i;   i = atof((const char*)sample); error C2440: 'type cast' : cannot convert from 'class CString' to 'const char *' どう直せば無事にdouble i に0.234を格納できるのでしょうか?よろしくお願いします。

  • 【VC++6.0(MFC)】CString型の変数から数字部分を取り出すには?

    いつも大変お世話になっています。 VC初心者です。 現在、VC++6.0(MFC)でコーディングしております。 早速ですが、有識者の方がいらっしゃいましたら ご教授頂きたくお願いします。 ===質問=== CString型変数に以下のような数値を含む文字列から 数値部分だけを取り出すにはどうやってソースを 組めば宜しいでしょうか? ===例01=== CString cs1 = "2009年7月29日"; この文字列から "2009","7","29"を取得したい ===例02=== CString cs2 = "AM10:00:00 -0.4℃"; この文字列から "10","0","0","-0.4"を取得したい 以上、よろしくお願いします。

  • CString Format にて全角空白文字連続して格納する方法は?

    CString のメンバ関数Formatにて全角空白文字を連続して 入れる方法がありましたら教えてください。 GetBufferでアドレスを取得してmemset等で複数格納する事は 可能なのですが、できればFormatをしようしてスマートに 格納したいです。。。 ちなみに半角空白は下記で格納可能でした。 CString s; s.Format("%-36d", " "); 左詰めで半角空白が36バイト入ります。 この要領で全角空白を複数格納したいです。 引数の指定の方法等わかりましたら、教えてください。 よろしくおねがいします。

  • Oracle8での数値チェック

    現在、Oracle8.1.7で開発しております。 検索する条件として、『数値かどうか』または『文字列かどうか』 という判断を行いたいのですが可能でしょうか? やりたい事は、以下のデータの右から2桁目が数値となっているものと 文字列になっているものとを区別したいのです。  ○○○○-A01  ○○○○-C99  ○○○○-AB1  ○○○○-Z21     : 設計上、すべてのフィールドは『VARCHAR2』となっています。 よろしくお願いしますm(_ _)m

  • CString型の文字列連結について

    質問させて頂きます。 開発環境はVC++.netです。 CString型の文字列連結について教えて頂きたく。 CString Test[_MAX_FNAME+1]; という変数にがあるとします。 Test変数のデータは Test[0]には"2" Test[1]には"1" が格納されてるとします。 Test変数のデータをCString Text1という変数に 以下のようなソースで文字列連結処理を行ったのですが、だめでした。 何がいけないのでしょうか? for(int i = 0; i <= 2; i++) { Text1 += Test[i]; } 実行結果は Text1には"2"が格納されたままでした。 実際はText1には、"2""1"となってほしい。 分かりにくい説明とは思いますが、 回答、ヒントなどを頂けますでしょうか 宜しくお願い致します。 それと、もしよかったら、Text1の格納データは "2","1"としたいので、カンマ区切りのやりかたなども ヒントを頂けたら幸いです。 以上です。 宜しくお願い致します。