ページ 11

初心者です・・・

Posted: 2010年6月24日(木) 20:25
by つよ
あるソフトウェアのソースコードに少し付け加えたいと思って編集しているのですが、どうもうまくできません。


問題としましてはあるポインタに文字が入力されていて(ソフトウェアで自動入力)、それが指定した文字と同じなら動作をする、というプログラムを付け加えたいのですが、上手く比較ができません。


printでポインタにどのような文字が入力されているかを表示させて確かめたところ、%s(文字列出力)での文字は一緒にはなっています。
%d(10進数出力)では若干違った値が出ました。

実際の結果は下のようになりました。
文字列 10進数
DIR  1875548980
DIR  1875549508

これはどのようにしたらよろしいでしょうか?

Re:初心者です・・・

Posted: 2010年6月24日(木) 21:31
by ideyan
何やらポインタについて色々と誤解されているような気がします。

上手く比較ができません、でなく
現状どのように比較しているかぐらいは書くべきでしょう。

ポインタ同士を直接比較していると仮定して答えますが
「ポインタの比較」と「ポインタが指しているものの比較」は違います。
文字列を比較したいならstrcmpやstrncmpを使ってはどうでしょうか?

Re:初心者です・・・

Posted: 2010年6月24日(木) 22:34
by つよ
すみません(^_^;

普通に下のように
==
などを使って比較してました。

提案していただいた、strncmpを使わせていただきましたところ、思い通りに動作させることができました!


ありがとうございました<(_ _)> 画像