特定の文字列取得 – プログラミング – Home

通知
すべてクリア

特定の文字列取得


hanabi
 hanabi
(@hanabi)
ゲスト
結合: 22年前
投稿: 39
Topic starter  

いつもお世話になっています。
開発環境はWindows2000 VC++6.0 MFC です。

今回はリッチエディットボックス内の文字列を取得することについての質問です。
プログラム実行時にリッチエディット内に予め「squrt()」などと表示しており、
「( 」と「)」の間に数値を入力させ、その数値を取得したいと思っています。

strtokを使用し、デリミタ文字群に英字や「( )」を設定すれば数値のみを
取得できそうな気がしますが、他によい方法はないのでしょうか?

よろしくお願いします。


引用解決済
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

その方法ではなぜダメなのかを書かないといい回答は得られないと思いますよ。

とりあえず一案。
CString::Find()
CString::ReverseFind()
CString::Mid()
の組み合わせ。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

どこまでやる必要があるのかによって処理の煩雑さが変わってくると思います。
例えば、必ず、ユーザーは、squrt(23)という入力をしなくてはならない。
()以外の場所に数値を書いたり想定以外の場所に書いた場合は結果を保証しない
と言うのであれば、話簡単で最初に文字列を入れとくのはプログラムなのですから
(の位置をあらかじめ調べておいて(の次の位置から最後から一つ前までを
取り出して数値と扱うだけで済みます。

ユーザーのみょうちくりんな入力に対してエラーを出し、例外的な記述もある程度許し
という事になるとそれに伴って文字列の解析処理だのナンだのが増えるわけです。
結局はどこまで汎用を求めるかで、汎用を求めるのであれば、処理は自ずと見えてくる
と思います。
汎用的な方法となれば、多少の差はあれ同じようなロジックになると思います。

使用するのは、CStringクラスのメソッドとか、文字列周りの標準関数とかそれは状況に
あわせてどうぞ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました