プロが教える店舗&オフィスのセキュリティ対策術

C言語の質問です。
以下の命令を実行するプログラムを作りました
①文字列aとbの長さを表示
②aとbの内容が等しいか確認
③新たにヒープ領域上にメモリを確保して文字列cを宣言しそこにaとbを連結した文字列を代入し表示
④メモリ領域解放

コードと実行結果は写真のとおりです。
しかしstrcmpで②を実現しようとした際、内容はまったく一致していないのに結果は等しいと出てしまいました。

また③においては予想はstrcatで2つの文字列を連結したので"495051525312345"と表示されると思ったのですが違いました。

長くなってしまいましたが質問です。
自分はstrcmpは配列の内容が一致すれば0を返すと思っていたのですが違うのでしょうか?またなぜ③は予想とは違い"1234512345"と出たんでしょうか?

「C言語の質問です。 以下の命令を実行する」の質問画像

A 回答 (1件)

内容が一致しているということですね。


文字コード「49」は文字"1"を表します。50以降も同様です。
    • good
    • 0
この回答へのお礼

strcmpは文字列として判断するからそうなるんですね!ありがとうございます!

お礼日時:2022/04/29 15:58

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