teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

訂正後のコードの追加

2020/02/27 02:12

投稿

aya0
aya0

スコア16

title CHANGED
File without changes
body CHANGED
@@ -38,4 +38,41 @@
38
38
 
39
39
  このプログラムを実行すると、int str_char(const char s[],int c){/* ・・・*/}の返却値が必ず-1になってしまいます。
40
40
  なぜ、if (s[i] == c) return i;としては、いけないのか理由が知りたいです。
41
- よろしくお願いします。
41
+ よろしくお願いします。
42
+
43
+ 下記は訂正後のコードです
44
+ ```
45
+ #define _CRT_SECURE_NO_WARNINGS
46
+ #include <stdio.h>
47
+
48
+ int str_char(const char s[], int c)
49
+ {
50
+ int i;
51
+ int len = 0;
52
+
53
+ while (s[len])
54
+ len++;
55
+
56
+ for (i = 0; i < len; i++) {
57
+ if (s[i] == c)
58
+ return i;
59
+ }
60
+ return -1;
61
+ }
62
+
63
+ int main(void)
64
+ {
65
+ char str[128];
66
+ int a;
67
+ char co;
68
+
69
+ printf("文字列を入力してください\n");
70
+ scanf("%s", str);
71
+ printf("文字を入力してください\n");
72
+ scanf(" %c", &co);
73
+ a = str_char(str, co);
74
+ printf("文字列の中にある入力した文字の添え字は%d\n", a);
75
+
76
+ return 0;
77
+ }
78
+ ```