質問編集履歴
2
訂正後のコードの追加
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
解決後のコードを追加しました。
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
|
+
```
|