我正在研究C代碼,並努力尋找一種方法來終止特定數量的字符後的字符串。例如,我需要在3個字符後終止字符串data
。如果它是一個純ASCII字符串,我可以這樣做終止(可能)多字節字符串?
data[3] = 0;
但在我的情況下,任何字符可以是多字節像E或A。給定數量的個字符後終止此字符串的最佳方法是什麼?
UPDATE:
基本上是:
char s_mon[7];
setlocale(LC_ALL, "");
strftime(s_mon, 7, "%b", tick_time);
當前區域設置爲法語。月份被存儲爲「févr。」。需要它是「fév」,但這需要具有普遍性,所以像「mars」這樣的條目也可以縮減爲3個字符。
什麼是'data' –
根據編碼聲明(你應該知道你正在使用的編碼),對於使用多字節序列精確的規則。你從左到右分析字符串,考慮這些規則,直到你越過第N個字符。然後你可以放一個零(對於UTF-8,例如單個0就可以)。 – linuxfan
''','''''''''''''''''''''''''''''''''''請勿需要「多字節」。使用[8859-1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1),它們只是代碼200和192.你使用的字符集是什麼?代碼是如何讀取文本的? – chux