剥离非数字字符串元素

时间:2013-11-09 14:34:43

标签: c arrays string algorithm

我有一个字符串数组,结构如下:

    arr[0] = "AB82374892";  
    arr[1] = "QBA9980309";
    arr[2] = "AC00098320";        

等等。

如何从每个数组元素中删除每个非数字字符串元素?这样上面的数组就变成了:

    arr[0] = "82374892";
    arr[1] = "9980309";
    arr[2] = "00098320";

目标是获取仅数字字符串,以便可以有效地执行字典级别排序。

1 个答案:

答案 0 :(得分:0)

对于每个字符串,使用两个指针 - writer和reader。

  • 使用数组上的reader指针迭代 - 如果元素不是数字,则只增加它。
  • 如果元素是数字 - 写入并增加两个指针。

伪代码:

writer = reader = 0
while reader < n:
   if arr[reader] is numeric:
      arr[writer++] = arr[reader++]
   else:
      reader++

(不要忘记为每个字符串添加一个空终结符)