こんにちは
現在、CArrayをTYPE CStringで要素を格納しています。
この、格納された要素が、数値(たとえば、1000)であったら、それをnumericと判断するのはどうしたらよいでしょうか??
CStringで格納されているものをnumericかどうか判断するのは無理なのでしょうか??

A 回答 (1件)

かなり強引な方法ですが、


x = atoi で整数型に変更して、
sprintf(s, "%d", x) で文字列に戻して、比較するのはどうでしょう?

っていうのは冗談で、
1文字ずつ取り出して、'0' から '9' の範囲内かどうかで
いいんじゃないでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/11/14 20:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q初心者がまず始めるプログラミング言語はなにはおすすめ?

こんにちは。
プログラムについてほぼまったくの初心者です。
シューティングゲームやファミコンの頃のようなマリオ系アクションがつくりたいです。また、就職時や特技として履歴書に書ける、役に立つプログラミング言語が学びたいです。
使っているOSはXPです。
C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。
たくさんあるプログラミング言語の中から、初心者にもわかりやすくて、また、他のプログラミング言語への勉強にもなるようなプログラミング言語はあるでしょうか?
おねがいします。

Aベストアンサー

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少ない
  ‐綺麗なプログラムを書かないと気持ち悪くなるという,良い習慣が身につく
  ‐文法が比較的単純
  ‐処理系が無料で手に入る
  ‐世界的に広く使われている
  ‐オブジェクト指向もできる

 その後で,JavaScript に進んでみてはいかがでしょうか。毛色の異なるいろいろな言語に慣れておく必要があり,将来,Java, C#, C, C++ などの言語に進むためにも。

 また,視野を広げるために Scheme, Common Lisp や ML, OCaml, Haskell, Erlang など関数言語のたぐいや,Perl や Ruby, sed, Awk などのスクリプト言語の本にも目を通されることをお勧めします(いずれも世界的に有名で,処理系が無料で手に入ります)。

 それから Java や C# などに取り組めば良いと思います。そして,C や C++ も勉強しておく必要があります。

 私自身は,仕事の都合でCOBOLとアセンブラを先に勉強し,かなり後になってC言語を勉強したので,C言語のポインタのどこが難しいのか分かりませんでした(C言語のポインタは簡単です(^^;)。ただし,アセンブラは余力があるときに限り取り組めばよいでしょう(でも,CASL関連の本には目を通しておくべき)。

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少...続きを読む

QMFCを使って、ひとつのkey(CString)から複数要素(CString)をとりだせるようなプログラムを書きたいのですが・・・。

私は現在visual C++6.0を使用して
MFCをちょこちょこ使いながらC++でプログラムを書いています。

皆さんご存知かとは思いますが
CMapStringToStringを使うと一つのKeyからひとつの要素しかとりだせません。
ひとつのKeyに対していくつか要素を追加していけるようにしたいのです。

どなたかご存知の方がいらっしゃったら教えて頂けないでしょうか?

Aベストアンサー

適当に作ってみました。

CMapStringToOb SAMap(3);

CStringArray *pVal;
pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "田中 太郎";
(*pVal)[1] = "田中 花子";

SAMap.SetAt("TANAKA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "山田 太郎";
(*pVal)[1] = "山田 花子";

SAMap.SetAt("YAMADA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "佐藤 太郎";
(*pVal)[1] = "佐藤 花子";

SAMap.SetAt("SATOU", pVal); // 要素を追加

CStringArray *pMapVal;

// 値を獲得
BOOL b = SAMap.Lookup("YAMADA", ( CObject *&)pMapVal);

printf("%s\n",(LPCSTR)pMapVal->GetAt(0));
printf("%s\n",(LPCSTR)pMapVal->GetAt(1));

適当に作ってみました。

CMapStringToOb SAMap(3);

CStringArray *pVal;
pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "田中 太郎";
(*pVal)[1] = "田中 花子";

SAMap.SetAt("TANAKA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "山田 太郎";
(*pVal)[1] = "山田 花子";

SAMap.SetAt("YAMADA", pVal); // 要素を追加

pVal = new CStringArray();
pVal->SetSize(2);
(*pVal)[0] = "佐藤 太郎";
(*pVal)[1] = "佐藤 花子";

S...続きを読む

Q初心者が選ぶべきプログラミング言語は?

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています
後々は勉強の具合により目的も変えてゆきたいと思っていますが・・・

今現在の理解では・・・
基礎はCで、ビジネスではJavaで、WebはPHP、ぐらいしか解りません。どれもプログラミングの共通点を
有していて勉強すればある程度は共通知識を身につけられることも言われてはいますが
言語選びを間違えたくないなと思いまして。

Cをすこし勉強したときいつwindowsアプリのようなウィンドウをつくれるかももわかりませんでした。
現在自分ができることといったらExcelでVBAを組んで(かなり低レベルですが)自動化させる程度です。


ビジネスの世界、SEなどのプログラマーの世界で今注目されている言語や花形言語など、現在業界のオーバービューも知りたいです、詳しい方どうぞよろしくお願いします。

※個人的にはRubyが面白そうで、いろんなことができそうだなと思っています。

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたい...続きを読む

Aベストアンサー

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語をマスターしたからといって、WindowsやiPhoneで思い通りにソフト開発ができるわけじゃないです。

なので、最初は「どのプラットフォームの開発を身につけたいか」を決めた方が適切なアドバイスがもらえると思います。

Windows?iPhone?Webアプリ? SaaS系?などなど

プラットフォームが決まれば、今習得すべき言語は(本人の希望によらず)勝手に決まってしまいます。AndoroidならJavaとか。

「将来性」はともかく、Windowsアプリを作りたいのであれば、.NET Framework で VBでもC#でもお好きな方を使って開発するのが一般的ですが、それでもハード性能を100%使い切るばりばりの3Dゲームソフトを作りたいなら Win32API & C++ & DirectXでどうぞ、という感じです。その前にWindowsで3Dゲームを作ること自体が今となっては疑問です。XBOX + XNAの方がいいかもしれません。
将来性をもってゲームを作りたいなら、AndroidやiPhone で OpenGLアプリを勧めたいですね。

という感じで、言語を選ぶこととプラットフォームを選ぶことは別で、多くの場合プラットフォームが決まれば最適な言語をマスターするしかないということです。

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語を...続きを読む

QCArrayの要素としてCStringArrayを使うことは...

MFCのCArrayを使って以下のことをしようとすると
エラーになります。

コード:
CArray <CStringArray, INT_PTR> array;
CStringArray str;
array.Add(str.Add("aaa"));

エラー内容:
C2582: 'operator '=' 関数を 'CStringArray' で使用できません。


CArrayの要素としてCStringArrayを使うことは
出来ないのでしょうか?

Aベストアンサー

結論は、出来ません。

CArrayを用いるには
operator=(..) が定義されていないと、使えませんが、
CStringArrayの定義(AFXCOL.H)に 定義が無いので無理です。
(AFXCOL.H書き換えれば、一応できるけど(==; やらないように、 )

変わりに、CObArray使ってくださいな(=w=ノ


(入れてね)
#include <Afxcoll.h>


(使い方)
CObArray array;
CStringArray str;
array.Add(&str); //扱いがポインタになるので注意


後、
CStringArray::Add()は
追加した要素のインデックスです。

array.Add(str.Add("aaa"));

こんな記述はできませんよ。

Q僕は高校生なんですがプログラミング言語を将来のために学びたいと思っています。まだ初心者なので調べた結

僕は高校生なんですがプログラミング言語を将来のために学びたいと思っています。まだ初心者なので調べた結果RubyかPythonのどちらかにしようと思うのですがどちらがいいでしょうか?
なるべく多くの意見を参考にしたいです。

Aベストアンサー

入門書とか入門サイトとか少し読んでみて、直感的に「なんとかなりそう」と思った方。
悩んでないで、直感を信じてとにかく始めることです。


プログラムは大きく
・やろうとしていることをどうやって実現するか?
・それをプログラミング言語でどうやって記述するか?
の2つの要素があります。

前者の「やり方」は、言語によろ違いが少ないので、一度身に付くと、言語が変わっても応用が効きます。
後者の「書き方」は(多少似たところはあるものの)言語毎に違うので、「やり方」程は応用が効きません。

「最初の言語」はどうしても「やり方」「書き方」の両方を学習しなければなりません。
ですが、次からは「書き方」中心の学習になるので、「最初の言語」ほどは苦労しないはずです。


なので、とにかく早く始めて、「やり方」を身に付けていきましょう。
直感がはずれて、「この言語は無理」と感じたとしても、「次の言語」へは1から始めるよりははるかに楽になっているはずです。

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

CString のメンバ関数Formatにて全角空白文字を連続して
入れる方法がありましたら教えてください。
GetBufferでアドレスを取得してmemset等で複数格納する事は
可能なのですが、できればFormatをしようしてスマートに
格納したいです。。。
ちなみに半角空白は下記で格納可能でした。

CString s;
s.Format("%-36d", " ");

左詰めで半角空白が36バイト入ります。
この要領で全角空白を複数格納したいです。
引数の指定の方法等わかりましたら、教えてください。
よろしくおねがいします。

Aベストアンサー

そのような関数を自作すれば、以後はスマートに使えますよ。

全てを既存ライブラリに頼るのではなく、自分の都合にあった
部品(関数)を自作することも重要かと思います。
例えば、こんな仕様で作っておくのはいかが?

CString repeatString(int count, const char * string = NULL)
{
if (count <= 0) return "";
if (string == NULL) {
string = " ";
}
// 以下、戻すべき文字列を作る処理
// CString returnString;
// ...
// return returnString;
}
// 質問の例なら、CString s = repeatString(36);
// CString s = repeatString(3, "Go");なら"GoGoGo"に

QC言語でプログラミングできるソフト(初心者)

大学1年で今年から始めてプログラミング(C言語)を学ぶものです。
今のところif文やfor文、関数などの基本をかじった程度なのですが
なんとか自分の家のパソコンでプログラミングを行いたいので、
何か良いソフトのようなものはないでしょうか?(有料でも構いません)

実際に文などが書けて、コンパイルし、結果を出力してくれるものです。
パソコン自体がまだ初心者なので、できればで良いのですが、分りやすいものをお願いします<m(__)m>

Aベストアンサー

#4さんも書かれてますが、大学であればunixかLinuxの環境だと思います。
なので、私もcygwinをお勧めします。windows上にuinxの環境を構築できて、gccという無料のコンパイラが利用できます。
それにunixやlinuxの環境構築の良い勉強になります。

簡単な導入の仕方がありますので試してみてください。
http://www.twcu.ac.jp/~osada/comp2a/cygwin.html
こちらも参考に。
http://programnet.hp.infoseek.co.jp/coloum/colum.html

QCStringの配列要素を関数で受け渡しするには?

VC6を使っています。
それと当方、古いC言語しか分からず、
CStringの使い方で、ハマってしまっています。
よろしくお願いします。

(例)
main関数側で、
 CString buf[3];

buf[0] = "abc";
buf[1] = "012";
buf[2] = "xyz";

これを関数に渡して、それぞれの文字列内を加工したいのです。

func1(3,buf); ---(*)


func1(int num, CString aaa) ----(*)
{
  int i;

  for(i=0; i<num; i++){
   if(i % 2 == 0){
     aaa[i] += ".000";
   }else{
     aaa[i] += sprintf(".%03d",i);
   }
  }
}

たとえば、上記のような感じです。sprintf()の使い方が間違っている
などもあるかも知れませんが、
それよりも、(*)の呼び出し側と引数定義の部分の書き方について、
ご存知の方お教えください。よろしくお願いします。

VC6を使っています。
それと当方、古いC言語しか分からず、
CStringの使い方で、ハマってしまっています。
よろしくお願いします。

(例)
main関数側で、
 CString buf[3];

buf[0] = "abc";
buf[1] = "012";
buf[2] = "xyz";

これを関数に渡して、それぞれの文字列内を加工したいのです。

func1(3,buf); ---(*)


func1(int num, CString aaa) ----(*)
{
  int i;

  for(i=0; i<num; i++){
   if(i % 2 == 0){
     aaa[i] += ".000";
   }else{
 ...続きを読む

Aベストアンサー

CStringクラスに参照代入は使えない(とオモタ)
CStringクラスをバッファアドレスとして指定できない(とオモタ)

func1(3,buf);

func1(int num, CString *aaa)
{
  int i;
  CString workStr ;
  for(i=0; i<num; i++){
   if(i % 2 == 0){
     workStr = aaa[i] + ".000";
     aaa[i] = workStr ;
   }else{
     workStr.Format("%s.%03d",aaa[i],i);
     aaa[i] = workStr ;
   }
  }
}

Q初心者におススメのプログラミング言語は何ですか?

C C++ Java などの言語がありますが、中でも初心者(素人)が始めるにあたって一番おススメの言語は何ですか。

 教えてください。 よろしくお願いします。

Aベストアンサー

JavaScriptがオススメです。
理由は
1)ネット上に情報がたくさんある
2)開発環境の構築が容易
3)実行環境の構築が容易
4)実行時の動作がグラフィカルなので「達成感」がある
特に4は重要です。

必要に迫られない勉強は、やる気を継続させる事が結構難しかったりします。
コマンドプロンプト上で実行するような言語の場合、せっかく苦労してプログラムを組んでも
動作結果が地味な事が多いため、動いた事に対する感動が薄くなります。
これが積み重なると、途中で投げ出す結果につながりかねません。
その点、JavaScriptのようにダイアログを出したり色を変えたりといった
動作をさせる言語であれば、やる気の低下を抑える事が出来ます。

もっとダイナミックな動きをさせたいのであれば、
Delphi(Pascal)、C#、VBなどを使うのもいいでしょう。
どれも無料版の開発環境を配布しています。

将来プロになる事を考えているのであれば現在よく使われているPHPや
今後よく使われることになると思われるPython、Rubyなどを勉強するのもいいかもしれませんが
1つのプログラミング言語を身に付ければ他の言語に移るのは割と楽ですので
最初は勉強のしやすさを基準に選ばれると良いかと思います。

JavaScriptがオススメです。
理由は
1)ネット上に情報がたくさんある
2)開発環境の構築が容易
3)実行環境の構築が容易
4)実行時の動作がグラフィカルなので「達成感」がある
特に4は重要です。

必要に迫られない勉強は、やる気を継続させる事が結構難しかったりします。
コマンドプロンプト上で実行するような言語の場合、せっかく苦労してプログラムを組んでも
動作結果が地味な事が多いため、動いた事に対する感動が薄くなります。
これが積み重なると、途中で投げ出す結果につながりかね...続きを読む

QC# スタックに格納する要素が配列について

スタックに格納する要素が配列の場合

// スタック生成
Stack<int[]> StackObj = new Stack<int[]>();

// 格納する配列データーの作成
int[] ArrayWork = new int[2];
ArrayWork[0] = 7;
ArrayWork[1] = 12;

// スタックに格納
StackObj.Push(ArrayWork);

のように記述できます

同様に、POP、PEEP、COUNTの場合、どのように記述すればいいでしょうか?

Aベストアンサー

var a = StackObj.Pop();

Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.1で確認。

参考URL:http://www.ideone.com/XeixG


人気Q&Aランキング

おすすめ情報