0

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

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

等等。

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

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

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

4

1 回答 1

0

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

  • 使用数组上的读取器指针进行迭代 - 如果元素不是数字,则仅增加它。
  • 如果元素是数字 - 写它并增加两个指针。

伪代码:

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

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

于 2013-11-09T14:36:10.093 回答