我需要在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 2010-11-19 02:20:23
坦白地說,我對自己感到失望(自我鞭commence開始)。我在一段時間內並沒有每天使用C語言,而ispunct是更好的選擇。我將離開我以前的評論,以表彰我對依賴不必要的臃腫方法的敬意,因爲簡單的工作可以很好地完成。 – KevinDTimm 2010-11-19 02:52:38