char szTemp[32];
strcpy(szTemp, "原字串");
memcpy(szTemp+1, szTemp, 32);
szTemp[0]= 0x20;


以上程式主要是把字串存在陣列的位置,往後移動一個Byte,
"原字串"是我假設的,出問題的似乎都是外造字。

VC++6.0這樣使用於Debug中沒問題,
但程式正式使用時,會有BUG出現,
會輸出:
"原字串" -> " 原字串@"
使用一個buf來處理,就沒問題。
不明白原因,有請路過的高手請解惑,
總之使用以下code解決。
     char szFinal[32], szTemp[32];
memset(szTemp, 0x20, 32);
memset(szFinal, 0x20, 32);
strcpy(szTemp, "原字串");

memcpy(szFinal+1, szTemp, 32);
szFinal[0]= 0x20;
輸出:
"原字串" -> " 原字串"
創作者介紹
創作者 Bright的部落格 的頭像
Bright

Bright的部落格

Bright 發表在 痞客邦 留言(0) 人氣( 54 )