質問編集履歴

5

質問の改善

2016/11/19 13:11

投稿

ikuo-biyori
ikuo-biyori

スコア56

test CHANGED
@@ -1 +1 @@
1
- ポインタで、文字列挿入
1
+ ポインタについて
test CHANGED
@@ -1,22 +1,4 @@
1
- いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入時に文字列の長さが1023文字を超えても動作しつづけるプログラムを作成したいんです。いろいろ考えたんですが、流れがうまくつかめず、苦戦しています。nのアドレスを知って、配列の中身を1つずらそうとおもったんですが、p=&nでは変数の型が違くてアドレスを得られませんでした。どうやればnのアドレスを得られるのか教えて下さい。また流れがいまいちわからないので、流れもよろしければ教えてください。
2
-
3
- 実行したいこと
4
-
5
- ./a.out
6
-
7
- [Wakamatsu]
8
-
9
- 0 Atui
10
-
11
- [Atui][Wakamatsu]
12
-
13
- 11 young
14
-
15
- [Atui][Waka[young]matsu]
16
-
17
- 23 pine
18
-
19
- [Atui][Waka[young]matsu[pine]]
1
+ いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入時に文字列の長さが1023文字を超えても動作しつづけるプログラムを作成したいんです。
20
2
 
21
3
  以下がコードです。```C言語
22
4
 

4

質問の改善

2016/11/19 13:11

投稿

ikuo-biyori
ikuo-biyori

スコア56

test CHANGED
@@ -1 +1 @@
1
- ポインタについて
1
+ ポインタで、文字列挿入
test CHANGED
File without changes

3

質問の改善

2016/11/19 13:08

投稿

ikuo-biyori
ikuo-biyori

スコア56

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,22 @@
1
1
  いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入時に文字列の長さが1023文字を超えても動作しつづけるプログラムを作成したいんです。いろいろ考えたんですが、流れがうまくつかめず、苦戦しています。nのアドレスを知って、配列の中身を1つずらそうとおもったんですが、p=&nでは変数の型が違くてアドレスを得られませんでした。どうやればnのアドレスを得られるのか教えて下さい。また流れがいまいちわからないので、流れもよろしければ教えてください。
2
+
3
+ 実行したいこと
4
+
5
+ ./a.out
6
+
7
+ [Wakamatsu]
8
+
9
+ 0 Atui
10
+
11
+ [Atui][Wakamatsu]
12
+
13
+ 11 young
14
+
15
+ [Atui][Waka[young]matsu]
16
+
17
+ 23 pine
18
+
19
+ [Atui][Waka[young]matsu[pine]]
2
20
 
3
21
  以下がコードです。```C言語
4
22
 

2

質問の改善

2016/11/19 08:49

投稿

ikuo-biyori
ikuo-biyori

スコア56

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入るプログラムを作たいですが、実行がうまくかず、コンパイルエラーになっしまいます。おかか教えて下さい。
1
+ いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入時に文字列の長さが1023文字を超えても動作しつづけるプログラムを作成したいです。いろいろ考えたんですが、流れがうまくず、苦戦しています。nのアドレスを知って、配列の中身を1つずらそうとおもったんです、p=&nでは変数の型が違くてアドレスを得られませんでた。どうやればnのアドレスを得られるのか教えて下さい。また流れがいまいちわからないので、流れもよろしければ教えてください。
2
2
 
3
3
  以下がコードです。```C言語
4
4
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  char init[]="[Wakamatsu]"; /* 初期データ用文字列 */
24
24
 
25
- char *str;
25
+ char *str,*buf,*mou;
26
26
 
27
27
  int n;
28
28
 
@@ -30,7 +30,11 @@
30
30
 
31
31
  /* その他の変数を宣言 */
32
32
 
33
- int kazu;
33
+ int kazu,mozi;
34
+
35
+ char *p;
36
+
37
+
34
38
 
35
39
  /* strの初期化を記述する*/
36
40
 
@@ -40,38 +44,74 @@
40
44
 
41
45
  */
42
46
 
43
- kazu=strlen(init[]);
47
+ kazu=strlen(init);/*文字列をコピーするからinit[i]みたいに文字として表記しない。*/printf("kazu=%d\n",kazu);
44
48
 
45
- str=(char*)malloc(strlen(init[10])*sizeof(char);
49
+ str=(char*)malloc(kazu*sizeof(char));
46
50
 
47
- strcpy(str,init[]);
51
+ strcpy(str,init);/*文字列をコピーするからinit[i]みたいに文字として表記しない。*/
48
52
 
49
53
 
54
+
55
+ while (1) {
56
+
57
+ printf( "%s\n", str );
58
+
59
+ if( scanf("%d %s", &n, input) != 2 ) break;
60
+
61
+ /*
62
+
63
+ * 処理の内容を記述する
64
+
65
+ */ mozi=strlen(input);
66
+
67
+ buf=(char*)malloc(kazu+2+mozi*sizeof(char));
68
+
69
+ mou=(char*)malloc(mozi+2*sizeof(char));
70
+
71
+ // mou[0]='[';
72
+
73
+ // mou[mozi+2]=']';
74
+
75
+ strncpy(mou,input,mozi+2);
76
+
77
+ mou[0]='[';
78
+
79
+ mou[mozi+2]=']';
80
+
81
+ printf( "%s\n", mou);
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ }
96
+
97
+
98
+
99
+
50
100
 
51
101
 
52
102
 
53
103
 
54
104
 
105
+
55
106
 
107
+
56
108
 
57
- while (1) {
109
+
58
110
 
59
- printf( "%s\n", str );
111
+
60
112
 
61
- if( scanf("%d %s", &n, input) != 2 ) break;
113
+
62
-
63
- ここのscanfのところまで、実行したいです。その次の処理の内容記述のところまでは、まだ考え中です。
64
-
65
- /*
66
-
67
- * 処理の内容を記述する
68
-
69
- */
70
-
71
- }
72
114
 
73
115
  free(str);
74
116
 
75
117
  return 0;
76
-
77
- }

1

質問の改善

2016/11/19 08:42

投稿

ikuo-biyori
ikuo-biyori

スコア56

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入するプログラムを作りたいのですが、実行がうまくいせん。何がおかしいか教えて下さい。
1
+ いつもお世話になっています。c言語初心者で勉強中です。課題で、文字列のn文字目の後ろに、標準入力から入力した単語を挿入するプログラムを作りたいのですが、実行がうまくいかず、コンパイルエラーになってしいます。何がおかしいか教えて下さい。
2
2
 
3
3
  以下がコードです。```C言語
4
4