###前提・実現したいこと
「文字を入れるのではなく、文字コードを入れているだけ」と認識しています。
int型の変数にその文字コードというのを入力させて、、とやろうとしたのですが、うまくいきません。なぜダメなのでしょうか。
###発生している問題・エラーメッセージ
文字列に入力した文字が含まれているかどうかを調べる関数 を書いたのですが、含まれていても含まれてないとなってしまいます。
###該当のソースコード
C
1#include <stdio.h> 2/* 文字列の中の最も先頭に位置する文字cを探索 */ 3int str_char(const char s[] ,int c) 4{ 5 int i=0; 6 while(s[i]){ 7 if(s[i]==c){ 8 return i; 9 } 10 i++; 11 } 12 13 return -1; 14} 15 16 17 18int main() 19{ 20 char str[128]; 21 puts("文字列を入力"); 22 scanf("%s",str); 23 puts("探したい文字を入力"); 24 int key; 25 scanf("%d",&key); 26 int ans=str_char(str,key); 27 if(ans!=-1){ 28 printf("[%d]にあります\n",ans); 29 } 30 else{ 31 puts("ありませんでした"); 32 } 33 34 return 0; 35 36} 37
###試したこと
key をchar型の配列として、str_char関数に渡すときにchar[0]として渡すとうまくいきます。
###補足情報(言語/FW/ツール等のバージョンなど)
C言語
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/25 13:29 編集
2017/08/25 14:27
2017/08/26 11:02