回答編集履歴

7

変更

2017/11/19 22:28

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  }
42
42
 
43
- *str=*p;
43
+ *str=*p;
44
44
 
45
45
 
46
46
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  printf("%s\n",str);
58
58
 
59
- rev(str, 26);
59
+ rev(str, strlen(str));
60
60
 
61
61
  printf("%s\n",str);
62
62
 

6

変更

2017/11/19 22:28

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -1,4 +1,4 @@
1
- 最後の文字の部分とfreeを修正してみました。
1
+ while文の最後の部分を修正しました。
2
2
 
3
3
  ```c
4
4
 
@@ -14,9 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- char *pp=(char*)malloc(sizeof(char)*(n+1));
17
+ char *p=(char*)malloc(sizeof(char)*(n+1));
18
-
19
- char *p=pp;
20
18
 
21
19
 
22
20
 
@@ -32,7 +30,7 @@
32
30
 
33
31
 
34
32
 
35
- while(*(str)!='\0'){
33
+ while(*(str+1)!='\0'){
36
34
 
37
35
  *str=*p;
38
36
 
@@ -42,7 +40,11 @@
42
40
 
43
41
  }
44
42
 
43
+ *str=*p;
44
+
45
+
46
+
45
- free(pp);
47
+ free(p);
46
48
 
47
49
  }
48
50
 

5

追加

2017/11/19 22:24

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -61,3 +61,51 @@
61
61
  }
62
62
 
63
63
  ```
64
+
65
+
66
+
67
+ malloc使わないサンプル
68
+
69
+ ```
70
+
71
+ #include <stdio.h>
72
+
73
+ #include <string.h>
74
+
75
+ void rev(char *str,int n)
76
+
77
+ {
78
+
79
+
80
+
81
+ int i;
82
+
83
+ char c;
84
+
85
+ for (i=0;i<n/2;i++){
86
+
87
+ c=*(str+i);
88
+
89
+ *(str+i)=*(str+n-i-1);
90
+
91
+ *(str+n-i-1)=c;
92
+
93
+ }
94
+
95
+ }
96
+
97
+
98
+
99
+ void main(void){
100
+
101
+ char str[40]={"abcdefghijklmnopqrstuvwxyz"};
102
+
103
+ printf("%s\n",str);
104
+
105
+ rev(str, strlen(str));
106
+
107
+ printf("%s\n",str);
108
+
109
+ }
110
+
111
+ ```

4

変更

2017/11/19 19:54

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  void main(void){
52
52
 
53
- char str[40]={"abcdefghijklnmopqrstuvwxyz"};
53
+ char str[40]={"abcdefghijklmnopqrstuvwxyz"};
54
54
 
55
55
  printf("%s\n",str);
56
56
 

3

変更

2017/11/19 19:50

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -50,13 +50,13 @@
50
50
 
51
51
  void main(void){
52
52
 
53
- char str[40]={"abcdefghijklnmopqrstuvwxyz"};
53
+ char str[40]={"abcdefghijklnmopqrstuvwxyz"};
54
54
 
55
- printf("%s\n",str);
55
+ printf("%s\n",str);
56
56
 
57
- rev(str, 26);
57
+ rev(str, 26);
58
58
 
59
- printf("%s\n",str);
59
+ printf("%s\n",str);
60
60
 
61
61
  }
62
62
 

2

変更

2017/11/19 18:48

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  printf("%s\n",str);
56
56
 
57
- rev(str, 40);
57
+ rev(str, 26);
58
58
 
59
59
  printf("%s\n",str);
60
60
 

1

変更

2017/11/19 18:46

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -1,4 +1,4 @@
1
- 最後の文字の部分のみ追加してみました。
1
+ 最後の文字の部分とfreeを修正してみました。
2
2
 
3
3
  ```c
4
4
 
@@ -14,7 +14,9 @@
14
14
 
15
15
 
16
16
 
17
- char *p=(char*)malloc(sizeof(char)*(n+1));
17
+ char *pp=(char*)malloc(sizeof(char)*(n+1));
18
+
19
+ char *p=pp;
18
20
 
19
21
 
20
22
 
@@ -30,7 +32,7 @@
30
32
 
31
33
 
32
34
 
33
- while(*(str+1)!='\0'){
35
+ while(*(str)!='\0'){
34
36
 
35
37
  *str=*p;
36
38
 
@@ -40,9 +42,7 @@
40
42
 
41
43
  }
42
44
 
43
- *str=*p;
44
-
45
- free(p);
45
+ free(pp);
46
46
 
47
47
  }
48
48
 
@@ -50,13 +50,13 @@
50
50
 
51
51
  void main(void){
52
52
 
53
- char str[40]={"abcdefghijklnmopqrstuvwxyz"};
53
+ char str[40]={"abcdefghijklnmopqrstuvwxyz"};
54
54
 
55
- printf("%s\n",str);
55
+ printf("%s\n",str);
56
56
 
57
- rev(str, 26);
57
+ rev(str, 40);
58
58
 
59
- printf("%s\n",str);
59
+ printf("%s\n",str);
60
60
 
61
61
  }
62
62