全角文字列の検索方法。 – プログラミング – Home

全角文字列の検索方法。
 
通知
すべてクリア

全角文字列の検索方法。


df
 df
(@df)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

C++を使用して作成しています。

RPG等の会話プログラムを作成しようと考えているのですが、
テキストファイルと画像に、

あいうえお かきくけこ
さしすせそ ……
………

と、50音表を作成して、そのファイルを読み込み保存しておいて、
会話が「こんにちは」だったら、まず「こ」を保存しておいた50音表から
何行の何列にあるのか調べ、次に「ん」を同様に調べる、という方法を思いついたので
すが、上手く検索できません。

たとえば「あ」の場合は
char str[3]=あ
あ=str[0]+str[1]
で宜しいのでしょうか?
上手く検索できなくて困ってます…。


引用解決済
トピックタグ
aharen
 aharen
(@aharen)
ゲスト
結合: 18年前
投稿: 35
 

まず環境やツールをもうすこしくわしく書かれるとレスもしやすいのですが
参考書や講座的サイトの文字列の部分をしらべれば答えは出ると思います
C++というだけからだと strstrなどが使えると思います

さらにMFCのCStringがつかえるなら

CString Gojuon,str1;int position,retsu,gyou;

Gojuon=あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほ~~ん;

//たとえば ち を検索する場合

position =Gojuon.Find(ち);

//とやれば position=32 とでるから(1文字は2バイト)

retsu = (position / 2) / 5 + 1; gyou = (position / 2) % 5 + 1;

でできると思います

//変数にいれてやるときはたとえば

str1 = は;
position =Gojuon.Find(str1);
retsu = (position / 2) / 5 + 1; gyou = (position / 2) % 5 + 1;

それから過去ログは
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200104/01040020.txt

http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200111/01110035.txt

http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200207/02070092.txt

などがありますが


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

質問内容だけだとやりたい事が良く分からないですね。

まず、

> RPG等の会話プログラムを作成しようと考えているのですが、
> テキストファイルと画像に、
>
> あいうえお かきくけこ
> さしすせそ ……
> ………
>
> と、50音表を作成して、そのファイルを読み込み保存しておいて、
> 会話が「こんにちは」だったら、まず「こ」を保存しておいた50音表から
> 何行の何列にあるのか調べ、次に「ん」を同様に調べる、という方法を思いついたので
> すが、上手く検索できません。

この部分が何をしたいのかが良く分からないです。
内容から憶測すると、会話の内容を文字のイメージが入った画像ファイルから
切り出してその画像を組み合わせて表示したいと言う事なんですかねぇ?
ただ、そうならテキストファイルが必要になる理由が良く分からないです。
単純に一文字の画像の大きさがわかっているなら、
文字列検索のように効率が悪い事をするよりも文字コードから計算で算出
出来るような仕組みを考えた方が計算で直接求められる分だけ早そうです。
検索で総当りするよりも計算で求められる仕組みの方が動作効率も良いのでは
と思います。
最初の憶測が間違っていれば、全く見当違いかもしれませんけれど。

あと、
> 上手く検索できません。
>
> たとえば「あ」の場合は
> char str[3]=あ
> あ=str[0]+str[1]
> で宜しいのでしょうか?
> 上手く検索できなくて困ってます…。

うまく出来なかったのであれば、
うまく検索できなかった時にどんな処理をしていたのかという部分の説明が不足です。
少なくとも上記の説明からは何を使用としてリードバイトとトレイルバイトを足すような
事をしているのかが良くわかりません。たぶん、それでは検索できないと思いますが。

SJISと言うのはどういう文字コードでリードバイトとトレイルバイトとは何を指して
いるのかと言う部分が分からないのであれば、そこから調べた方がいいような気がします。


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

あうあう、誤字。

「使用として」じゃなくて「しようとして」です。


返信引用
aharen
 aharen
(@aharen)
ゲスト
結合: 18年前
投稿: 35
 

私のレスにおいて retsu と gyou の役目をとりちがえていたようです ごめんなさい


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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