【问题标题】:Stripping non-numeric string elements剥离非数字字符串元素
【发布时间】:2013-11-09 14:34:42
【问题描述】:

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

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

等等。

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

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

目标是获取纯数字字符串,以便高效执行字典级排序。

【问题讨论】:

  • 使用isalpha()对每个char数组的字符进行分类。

标签: c arrays string algorithm


【解决方案1】:

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

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

伪代码:

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

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

【讨论】:

    猜你喜欢
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2010-09-19
    • 2012-09-30
    相关资源
    最近更新 更多