有没有一种简单的方法可以用空格替换字符数组中的所有非字母字符,就像您使用下面的 bash 命令所做的那样?
sed 's/[^a-zA-Z]//g'
我唯一能想到的就是遍历 char 数组并逐个字符地进行比较和替换。我不知道是否有可以执行相同操作的 C 函数。
最佳答案
据我所知,没有比 O(n) 更好的方法了。即使有这样的函数甚至正则表达式引擎,它的效率也可能不如简单的线性复杂度解决方案。您可以循环遍历数组,将小于“A”或大于“z”的任何内容设置为“”。
while(*array)
{
if(!isalpha(*array))
*array = ' ';
array++;
}
关于c - 删除 C 中的非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16431858/