fgets関数を利用して文字列を入力し、その文字列に含まれている最初のaが何番目にあるのかを判定したいのですが、実行すると入力を3回させられ、3回目に入力した文字列で結果が判定されてしまいます。
解決法とできればfgets関数について詳しく解説してください。
###コード
C
1#include <stdio.h> 2#define MAX 100 3int find_a(char str[]); 4 5 6int main(void){ 7int i; 8char str[MAX]; 9printf("文字列を入力>>>"); 10find_a(str); 11if(find_a(str)==0) printf("入力された文字列にaはありません。\n"); 12else printf("%d文字目に最初のaがあります。\n", find_a(str)); 13return 0; 14} 15 16int find_a(char str[]){ 17int i=0; 18fgets(str,MAX,stdin); 19while(str[i]!='a'){ 20 if(str[i]=='\0') return 0; 21 i++; 22 } 23return i+1; 24} 25
###実行結果
文字列を入力>>>japan
japan
japan
2文字目に最初のaがあります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。