Noktalı işaretlemeyi UTF-8 dizelerinden C cinsinden hızlı bir şekilde filtrelemem gerekiyor. Dizeler uzun olabilir ve çok fazla olabilir. Şu anda kullanarak işlev çok verimsiz görünmektedir:Noktalama işaretlemenin en hızlı yolu 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;
}
bunu her noktalama işareti dize dolaşır görebileceğiniz gibi. Tüm noktalama işaretleri için bunu verimli bir şekilde tamamlayabilen basit bir kütüphane işlevi var mı?
Hangi derleyiciyi kullanıyorsunuz? (gcc bir regex modülü de sunuyor), 'c' regex için arama olasılıkları oldukça detaylı bir liste – KevinDTimm
almak için dürüst, kendimi hayal kırıklığına uğradım (kendini flagellation başlar). Bir süredir günlük olarak C kullanmıyorum ve ispunct çok daha iyi bir seçim. Basit bir şeyler oldukça güzelce yapılacağı zaman gereksiz yere şişirilmiş yöntemlere güvenmem için bir önceki yorumumu bırakıyorum. – KevinDTimm