ما هي أسهل طريقة لتحويل صفيف شار إلى صفيف Wchar؟

StackOverflow https://stackoverflow.com/questions/1846032

  •  12-09-2019
  •  | 
  •  

سؤال

في التعليمات البرمجية الخاصة بي، أتلقى const char array مثل ما يلي:

const char * myString = someFunction();

الآن أريد أن postprocess ذلك ك wchar array نظرا لأن الوظائف التي أستخدمها بعد ذلك لا تتعامل مع السلاسل الضيقة.

ما هي أسهل طريقة لإنجاز هذا الهدف؟

في نهاية المطاف multibytetetechar؟ (ومع ذلك، نظرا لأن هذه سلسلة ضيقة التي أحصل عليها كمدخلات، لا تحتوي على أحرف متعددة البياضات => ربما ليس أجمل حلا)

هل كانت مفيدة؟

المحلول

const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];

نصائح أخرى

سيعمل multibytetowidechar إلا إذا كنت تستخدم أحرف ممتدة في السلسلة الضيقة. إذا كانت سلسلة عادي ألفا رقمية ثم يجب أن تعمل بشكل جيد.

يمكنك أيضا إلقاء نظرة على MBSTOWCS والتي هي أقل معفدة قليلا ولكنها لا تقدم نفس كمية السيطرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top