2010-11-20 6 views
0

Cで正規表現したいと思います。プログラムは次のように出力していCで正規表現を実行する

thecapital([x], implies(maincity(y),x)) 

::のように私は、テキストを次したとし

implies(maincity(y),x)) 

誰もが私が進むものとどのように提案してくださいすることができますか?これは、正規表現を使用しませんが、一方で、それは雷高速です

const char * 
transform(const char *expr) { 
    return expr + 16; 
} 

:あなたは、次の簡単な関数を使用することができ、出力文字列implies(maincity(y),x))に入力文字列thecapital([x], implies(maincity(y),x))を変換するために

+2

http://stackoverflow.com/questions/725630/regular-expressions-in-c – gimel

+0

正規表現を使用する必要がありますか? "、"で文字列を分割するためにstrtok()を使用してみませんか? – helpermethod

+0

2つの "x"が同じでないとどうなりますか? –

答えて

4

。あるいは、あなたの質問をはっきりと示さなかったかもしれません。たとえば、あなたはどのような変換が行われるべきかを言葉で説明しませんでした。ただ一つの例を挙げるだけでは不十分です。

あなたは本当に何をしたいですか:

  • 戻り、すべて
  • 戻り、すべての最後のスペース文字
  • 戻り二i
  • から始まる引数の接尾辞の後の最初の空白文字の後に入力文字列の最初の16個の文字をスキップ
  • 戻り値"implies(maincity(y),x))"
  • 括弧内の2番目の引数を返し、最後に余分な閉じ括弧を返します。

私の簡単な示唆された機能は、これらすべての要件を満たしています。しかし、他の入力が与えられれば、それは絶望的に失敗します。