Cで素早くUTF-8文字列から句読点をフィルタリングする必要があります。現在使用している関数は非常に非効率的です:Cの句読点をフィルターする最速の方法
char *filter(char *mystring){
char *p;
while ((p = strchr(mystring,'.')) != NULL)
strcpy(p, p+1);
while ((p = strchr(mystring,',')) != NULL)
...etc etc etc...
...etc...
return mystring;
}
ご覧のとおり、各句読記号の文字列を繰り返します。すべての句読点に対してこれを効率的に完了できる単純なライブラリ関数はありますか?
どのコンパイラを使用していますか? (gccは正規表現モジュールを提供しています)また、Cの正規表現を検索して、可能性の詳細なリストを入手してください。 – KevinDTimm
正直なところ、私は自分自身に失望しています。私はしばらくのうちにCを毎日使っていないし、ispunctはずっと良い選択です。私は、単純なものがきれいになると不必要に肥大化したメソッドに依存していることに私が前向きにコメントしています。 – KevinDTimm