Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否有一种简单(ish)的方法可以用空格替换字符数组中的所有非字母字符,例如您可能使用下面的 bash 命令执行的操作?
sed 's/[^a-zA-Z]/ /g'
我唯一能想到的就是遍历 char 数组并逐个字符地进行比较和替换。我不知道是否有一个 C 函数可以做同样的事情。
据我所知,无论如何,没有一种方法比 O(n) 更好。即使有这样的功能甚至是正则表达式引擎,它也可能比简单的线性复杂度解决方案效率低。您可以循环遍历数组,小于“A”或大于“z”的任何内容都设置为“”。
while(*array) { if(!isalpha(*array)) *array = ' '; array++; }