前提
vscodeを用いてc言語でプログラミングを書いています。
実現したいこと
「hello」を入力したら「こんにちは」に変換されるプログラムを作りたいです。
(注意)以下のようなプログラム
入力:ahello hello HELLO helloa ! ’hello’ ’hi hello world’
出力:ahello こんにちは HELLO helloa ! ’hello’ ’hi hello world’
しかし実際に書いてみると特殊文字の出力がうまくいかず、、、調べてもなかなかヒットせず困っています。
(追記)
修正依頼:「Ahello」は「Aこんにちは」になっていいんですか?
A.ならないようにしたいです。
「hello」ちょうど一致するの単語のみ「こんにちは」に変換したいです。
発生している問題・エラーメッセージ
’hello'は反応させたくないのに反応してしまっている
'hi hello world’も同様
ahello hello HELLO helloa ! ’hello’ ’hi hello world’ ahello こんにちは HELLO helloa ! ’こんにちは’ ’hi こんにちは world’
該当のソースコード
c
1%{ 2 #define YY_SKIP_YYWRAP 3 #define yywrap() 1 4%} 5 6 7%% 8hello { 9 printf ("こんにちは", yytext); 10} 11[a-z]+ { 12 printf ("%s", yytext); 13} 14\'.\' { 15 printf ("%s", yytext); 16} 17%% 18 19int main(void) 20{ 21 yylex(); 22 return 0; 23}
解決に向けて行ったこと&考察
テラテイル内や、インタアーネットでlexについて検索をかけた。
バックスラッシュが半角か確かめた。
特殊文字の扱い方はバックスラッシュではダメなのでしょうか?
どなたか教えていただきたいです。
回答3件
あなたの回答
tips
プレビュー