###前提
書籍で勉強している学生です。
書籍の解答がないため問題のヒントや解説をしていただけると嬉しいです。
###問題
文字列sの中に、文字cが含まれていれば、その文字(複数含まれる場合は、最も先頭側の文字)へのポインタを返し、含まれていなければ空ポインタを返す関数を作成せよ。添字演算子を用いずに実現すること。
lang
1char *str_chr (const char *s, int c){/* ... */}
###該当のソースコード
lang
1char *str_chr (const char *s, int c){ 2 char *t; 3 do{ 4 if(*s == c){ 5 *t = *s; 6 return t; 7 } 8 }while(*s++); 9 10 return NULL; 11} 12
###疑問点
上記のコードはコンパイルエラーは出ないのですが、実行しようとすると上手く動作してくれません。
どこがいけないのか指摘して頂けると有り難いです。
また、考え方自体が的外れな場合それも指摘して頂きたいです。
###補足情報
書籍 : 新明解c言語 入門編
演習 11-6
エラーは出なくても警告が二つ出るんじゃないですか? もし出ないのならコンパイラのオプションを確認してください。
警告の内容はみなさんのおっしゃる通りですが、どこにどんなバグがあるか警告してくれないコンパイラは使いにくいので直した方がいいと思います。またテキストエディタもちゃんとしたものを使えばコンパイルする前に警告してくれて間違いを修正できます。VS Code や ATOM が人気があるようです。
有り難うございます。現在Sublime Textを使用しているため変更も考えてみます。
Sublime Text もいいエディタと聞いています。詳しくありませんが、編集中に C の構文チェックをするプラグインがあるんじゃないでしょうか?
調べて、導入していきます! 有り難うございました!
回答4件
あなたの回答
tips
プレビュー