初心者です・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
つよ

初心者です・・・

#1

投稿記事 by つよ » 15年前

あるソフトウェアのソースコードに少し付け加えたいと思って編集しているのですが、どうもうまくできません。


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


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

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

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

ideyan

Re:初心者です・・・

#2

投稿記事 by ideyan » 15年前

何やらポインタについて色々と誤解されているような気がします。

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

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

つよ

Re:初心者です・・・

#3

投稿記事 by つよ » 15年前

すみません(^_^;

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

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


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

閉鎖

“C言語何でも質問掲示板” へ戻る