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

質問編集履歴

4

初期値の設定と*(arg+4+m)の箇所などを修正しました。

2019/01/24 03:35

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -34,8 +34,8 @@
34
34
 
35
35
  char greek[][10] = {"alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", "iota", "kappa", "lambda", "mu", "nu", "xi", "pi", "rho", "sigma", "tau", "upsilon", "phi", "chi", "psi", "omega", "Gamma", "Delta", "Theta", "Lambda", "Xi", "Pi", "Sigma", "Upsilon", "Phi", "Psi", "Omega" "geq", "leq"};
36
36
 
37
- static int Cnt1;
37
+ static int Cnt1 = 0;
38
- int cnt1;
38
+ int cnt1 = 0;
39
39
 
40
40
  if(*arg == '\' )
41
41
  { arg++;
@@ -66,8 +66,8 @@
66
66
  void get_Lgreek(char *arg){
67
67
 
68
68
  char Greek[][10] = {"Alpha", "Beta", "Gamma", "Epsilon", "Zeta", "Eta", "Iota", "Kappa", "Mu", "Nu", "Rho", "Tau", "Chi", "omicron"};
69
- static int Cnt2;
69
+ static int Cnt2 = 0;
70
- int i;
70
+ int i = 0;
71
71
 
72
72
  if((*arg == Greek[Cnt2][0]) && ((*(arg+1) == '\0') || (*(arg+1) == '_') || (*(arg+1) == '^'))){
73
73
  *arg = '&';
@@ -89,7 +89,8 @@
89
89
 
90
90
  void get_Subscript(char *arg){
91
91
  char rest1[10] ;
92
- int i, j, l, m, cnt2;
92
+ int i, j, l, m;
93
+ int cnt2 = 0;
93
94
  char subscript[][10] = {"<sub>", "</sub>"};
94
95
 
95
96
  if(*arg == '_'){
@@ -125,7 +126,8 @@
125
126
 
126
127
  void get_Superscript(char *arg){
127
128
  char rest2[10] ;
128
- int i, j, l, m, cnt3;
129
+ int i, j, l, m;
130
+ int cnt3 = 0;
129
131
  char *superscript[] = {"<sup>", "</sup>"};
130
132
  if(*arg == '_'){
131
133
  arg++;

3

2019/01/24 03:35

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -65,15 +65,15 @@
65
65
 
66
66
  void get_Lgreek(char *arg){
67
67
 
68
- char Greek[][10] = {"Alpha", "Beta", "Gamma", "Epsilon", "Zeta", "Eta", "Iota", "Kappa", "Mu", "Nu", "Rho", "Tau", "Chi", "omicron"};
68
+ char Greek[][10] = {"Alpha", "Beta", "Gamma", "Epsilon", "Zeta", "Eta", "Iota", "Kappa", "Mu", "Nu", "Rho", "Tau", "Chi", "omicron"};
69
- static int Cnt2;
69
+ static int Cnt2;
70
- int i;
70
+ int i;
71
71
 
72
72
  if((*arg == Greek[Cnt2][0]) && ((*(arg+1) == '\0') || (*(arg+1) == '_') || (*(arg+1) == '^'))){
73
- *arg = '&';
73
+ *arg = '&';
74
74
  arg++;
75
- while(Greek[Cnt2][i] != '\0'){
75
+ while(Greek[Cnt2][i] != '\0'){
76
- *arg = Greek[Cnt2][i];
76
+ *arg = Greek[Cnt2][i];
77
77
  arg++ ,i++;
78
78
  }
79
79
  }
@@ -109,10 +109,10 @@
109
109
  *(arg-cnt2-1+j) = subscript[0][j];
110
110
  }
111
111
  for(l=0; l<cnt2; l++){
112
- *(arg-cnt2+4) = rest1[l];
112
+ *(arg-cnt2+4+l) = rest1[l];
113
113
  }
114
114
  for(m=0; subscript[1][m] != '\0'; m++){
115
- *(arg+4) = subscript[1][m];
115
+ *(arg+4+m) = subscript[1][m];
116
116
  }
117
117
  }
118
118
  else{
@@ -124,15 +124,15 @@
124
124
  }
125
125
 
126
126
  void get_Superscript(char *arg){
127
- char rest2[10] ;
127
+ char rest2[10] ;
128
- int i, j, l, m, cnt3;
128
+ int i, j, l, m, cnt3;
129
- char *superscript[] = {"<sup>", "</sup>"};
129
+ char *superscript[] = {"<sup>", "</sup>"};
130
130
  if(*arg == '_'){
131
131
  arg++;
132
- for(i=0; i<=9; i++){
132
+ for(i=0; i<=9; i++){
133
133
 
134
- if(*arg == '\0'){
134
+ if(*arg == '\0'){
135
- break;
135
+ break;
136
136
  }
137
137
  rest2[i] = *arg;
138
138
  arg++, cnt3++;
@@ -144,10 +144,10 @@
144
144
  *(arg-cnt3-1+j) = superscript[0][j];
145
145
  }
146
146
  for(l=0; l<cnt3; l++){
147
- *(arg-cnt3+4) = rest2[l];
147
+ *(arg-cnt3+4+l) = rest2[l];
148
148
  }
149
149
  for(m=0; superscript[1][m] != '\0'; m++){
150
- *(arg+4) = superscript[1][m];
150
+ *(arg+4+m) = superscript[1][m];
151
151
 
152
152
  }
153
153
  }

2

2019/01/24 00:08

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

1

発生している問題について記述しました。

2019/01/24 00:03

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,4 @@
1
+ ```C言語
1
2
  #include <stdio.h>
2
3
  #include <stdlib.h>
3
4
  void get_Greek_Mathsymbol(char *arg);
@@ -154,10 +155,15 @@
154
155
  arg++;
155
156
  }
156
157
  }
157
-
158
+ ```
159
+ **実現したいこと**
158
160
  このコードはなぜ実行できないのでしょうか?
159
161
  TeXの数式モードで書かれた文字列を与え、HTMLに変換するプログラムを作成するという問題です。
160
162
  どのように修正すれば実行できるでしょうか?
161
163
  \alphaなら&alpha
162
164
  Aなら&Alpha
163
- x_1^2ならx<sub>1</sub><sup>2</sup>みたいな感じです
165
+ x_1^2ならx<sub>1</sub><sup>2</sup>みたいな感じです
166
+
167
+ **発生している問題・エラーメッセージ**
168
+ eclispeではエラーはでるのですが、例えばコマンドライン引数を、\alpha \beta x_1^2 とした場合、結果は
169
+ alpha beta x_1^2 と入力のままになります。