我有一个具有如下结构的字符串数组:
arr[0] = "AB82374892";
arr[1] = "QBA9980309";
arr[2] = "AC00098320";
等等。
如何从每个数组元素中删除每个非数字字符串元素?这样上面的数组就变成了:
arr[0] = "82374892";
arr[1] = "9980309";
arr[2] = "00098320";
目标是获取纯数字字符串,以便高效地执行字典级别排序。
最佳答案
对于每个字符串,使用两个指针 - writer 和 reader。
- 使用数组上的读取器指针进行迭代 - 如果元素不是数字,则仅增加它。
- 如果元素是数字 - 写入它并增加两个指针。
伪代码:
writer = reader = 0
while reader < n:
if arr[reader] is numeric:
arr[writer++] = arr[reader++]
else:
reader++
(不要忘记为每个字符串添加空终止符)
关于c - 剥离非数字字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877172/