0

次のような構造を持つ文字列配列があります。

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

等々。

各配列要素から各非数値文字列要素を削除するにはどうすればよいですか? したがって、上記の配列は次のようになります。

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

目的は、辞書レベルのソートを効率的に実行できるように、数値のみの文字列を取得することです。

4

1 に答える 1

0

文字列ごとに、ライターとリーダーの 2 つのポインターを使用します。

  • 配列のリーダー ポインターを使用して反復します。要素が数値でない場合は、数値のみを増やします。
  • 要素が数値の場合は、それを書き込んで両方のポインターを増やします。

擬似コード:

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

(各文字列に null ターミネータを追加することを忘れないでください)

于 2013-11-09T14:36:10.093 に答える