2012-03-08 54 views
0

我的字符串是「37829300」。在字符串中間隔每2個字符?

如何隔出字符串中的每2個字符,結果可以是「37 82 93 00」。

我想在vC++中實現這一點。

謝謝。

我知道我可能不得不使用#include iostream,但我迷失在如何正確地做到這一點。

+0

WinForms C++/CLI或MFC VC++? – AVIDeveloper 2012-03-08 00:40:01

+0

任何特定的原因被標記爲「winforms」? – lochok 2012-03-08 00:40:30

回答

1

找不到一個花哨的單行正則表達式,所以讓我們以人工的方式來完成。

private static string AddSpaceAfterTwoDigits(string input) 
{ 
    string output = string.Empty; 
    MatchCollection arr = Regex.Matches(input, @"\d\d"); 
    if (arr.Count > 0) 
    { 
     output = arr[0].Groups[0].Value; // Add the first with no space 

     for (int i = 1; i < arr.Count; i++) 
     { 
      output += " " + arr[i].Groups[0].Value; 
     } 
    } 

    return output; 
} 
  • 的代碼是C#,但它是一個相當直接轉換到C++/CLI。
  • 該代碼假設輸入的數字爲,即使是數字
+0

由於我在c#中編寫代碼,我將嘗試轉換爲C++。我目前有 sHexPic = string_to_hex(sPic); \t \t sHexPic.insert(sHexPic.begin()+ 2,''); \t \t sHexPic.insert(2,「」); 但是所有這些代碼都是在第二個數字之後輸入一個空格。我需要找到一種方法來循環我的代碼。儘管感謝您的C#代碼。 – Andrew 2012-03-08 02:24:15

+0

http://stackoverflow.com/questions/9612079/loop-to-keep-adding-spaces-in-string 我重新做了一個線程與我的代碼,並試圖更好地解釋我的情況。 – Andrew 2012-03-08 02:25:52

相關問題