###前提
書籍で勉強している学生です。
書籍の解答がないため問題のヒントや解説をしていただけると嬉しいです。
###問題
文字列sの中に、文字cが含まれていれば、その添字(文字列中に文字cが複数ある場合は、最も先頭側の添字とする)を返し、含まれていなければ-1を返す関数を作成せよ。
lang
1int str_char(const char s[], int c){/* ... */}
###該当のソースコード
lang
1#define NUMBER 100 //文字列の要素数 2#define FAILED -1 //探索失敗 3 4int str_char (const char s[], int c) 5{ 6 int i; 7 8 while(1){ 9 if(i == NUMBER){ 10 return FAILED; 11 break; 12 } 13 if(s[i] == c){ 14 return i; 15 break; 16 } 17 i++; 18 } 19} 20
###疑問点
この演習を解いていて不思議に思ったことは、文字cであるのにint型で指定されている事です。
また、このプログラムの確認として、
文字cをscanf関数で取得しようとしたのですが、関数にはint型で渡さないといけないのに、文字はchar型であるため、変換指定子を何にすれば良いのか迷っています。
そして、そこで悩んでいるため確認ができず、このプログラムが上手く動作しているかどうか分かりません。
###補足情報
書籍 : 新明解c言語 入門編
演習 9-5
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/18 15:08