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

質問編集履歴

2

訂正後のコードの追加

2020/02/27 01:12

投稿

aya0
aya0

スコア16

title CHANGED
File without changes
body CHANGED
@@ -42,6 +42,8 @@
42
42
  よろしくお願いします。
43
43
 
44
44
  下記は解決後のコードです。
45
+
46
+ 改訂1
45
47
  ```
46
48
  #define _CRT_SECURE_NO_WARNINGS
47
49
  #include <stdio.h>
@@ -84,4 +86,39 @@
84
86
 
85
87
  return 0;
86
88
  }
89
+ ```
90
+
91
+ 改訂2(改訂1をシンプルにしました)
92
+ ```
93
+ #define _CRT_SECURE_NO_WARNINGS
94
+ #include <stdio.h>
95
+
96
+ void rev_string(char s[])
97
+ {
98
+ int i = 0;
99
+ int len = 0;
100
+ char temp;
101
+
102
+ len = strlen(s);
103
+
104
+ for (i = 0; i <(len / 2); i++) {
105
+ temp = s[i];
106
+ s[i] = s[len - 1 - i];
107
+ s[len - 1 - i] = temp;
108
+ }
109
+
110
+ }
111
+
112
+ int main(void)
113
+ {
114
+ char str[128];
115
+
116
+ printf("文字列を入力してください:\n");
117
+ scanf("%s", str);
118
+
119
+ rev_string(str);
120
+ printf("%s", str);
121
+
122
+ return 0;
123
+ }
87
124
  ```

1

解決後のコードを追加しました。

2020/02/27 01:12

投稿

aya0
aya0

スコア16

title CHANGED
File without changes
body CHANGED
@@ -39,4 +39,49 @@
39
39
  ```
40
40
  このプログラムを実行すると入力しただけでプログラムが止まってしまいます。
41
41
  なぜ、そのようになるのか理由が知りたいです。
42
- よろしくお願いします。
42
+ よろしくお願いします。
43
+
44
+ 下記は解決後のコードです。
45
+ ```
46
+ #define _CRT_SECURE_NO_WARNINGS
47
+ #include <stdio.h>
48
+
49
+ void rev_string(char s[])
50
+ {
51
+ char temp[128];
52
+ int i = 0;
53
+ int len = 0;
54
+
55
+ len = strlen(s);
56
+
57
+ for (i = 0; i <(len / 2); i++) {
58
+ temp[i] = s[i];
59
+ s[i] = s[len - 1 - i];
60
+ }
61
+
62
+ if ((len % 2) == 0) {
63
+ for (i = (len / 2); i < len; i++) {
64
+ s[i] = temp[len - 1 - i];
65
+ }
66
+ }
67
+ else {
68
+ for (i = (len / 2) + 1; i < len; i++) {
69
+ s[i] = temp[len - 1 - i];
70
+ }
71
+ }
72
+
73
+ }
74
+
75
+ int main(void)
76
+ {
77
+ char str[128];
78
+
79
+ printf("文字列を入力してください:\n");
80
+ scanf("%s", str);
81
+
82
+ rev_string(str);
83
+ printf("%s", str);
84
+
85
+ return 0;
86
+ }
87
+ ```