質問編集履歴
4
初期値の設定と*(arg+4+m)の箇所などを修正しました。
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
|
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
|
129
|
+
int i, j, l, m;
|
130
|
+
int cnt3 = 0;
|
129
131
|
char *superscript[] = {"<sup>", "</sup>"};
|
130
132
|
if(*arg == '_'){
|
131
133
|
arg++;
|
3
title
CHANGED
File without changes
|
body
CHANGED
@@ -65,15 +65,15 @@
|
|
65
65
|
|
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
|
-
|
69
|
+
static int Cnt2;
|
70
|
-
|
70
|
+
int i;
|
71
71
|
|
72
72
|
if((*arg == Greek[Cnt2][0]) && ((*(arg+1) == '\0') || (*(arg+1) == '_') || (*(arg+1) == '^'))){
|
73
|
-
|
73
|
+
*arg = '&';
|
74
74
|
arg++;
|
75
|
-
|
75
|
+
while(Greek[Cnt2][i] != '\0'){
|
76
|
-
|
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
|
-
|
127
|
+
char rest2[10] ;
|
128
|
-
|
128
|
+
int i, j, l, m, cnt3;
|
129
|
-
|
129
|
+
char *superscript[] = {"<sup>", "</sup>"};
|
130
130
|
if(*arg == '_'){
|
131
131
|
arg++;
|
132
|
-
|
132
|
+
for(i=0; i<=9; i++){
|
133
133
|
|
134
|
-
|
134
|
+
if(*arg == '\0'){
|
135
|
-
|
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
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
1
発生している問題について記述しました。
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 と入力のままになります。
|