C 中怎麼將WCHAR字串轉換成CHAR字串

時間 2022-03-12 18:40:20

1樓:匿名使用者

字元轉換的幾個問題思考

劃紅線的句子可要慎重啊!

這個轉換絕對沒有想象的那麼簡單:

首先你這個轉換需不需要跨平臺?

其次你這個轉換考慮不考慮效率和**大小?

再次你這個轉換要處理的物件:英文?漢字?英文+漢字?英文+漢字+日語+火星文?

2樓:風若遠去何人留

#include // you will need thisconst wchar* wc = l"hello world" ;

_bstr_t b(wc);

const char* c = b;

printf("output: %s\n", c);

uses_conversion;

wchar* wc = l"hello world" ;char* c = w2a(wc);

char output[256];

wchar* wc = l"hellow world" ;

sprintf(output, "%ws", wc );

三種方法都可以.

3樓:匿名使用者

c++標準中,wchar_t是寬字元型別,每個wchar_t型別佔2個位元組,16位寬。漢字的表示就要用到wchar_t 。char,我們都知道,佔一個位元組,8位寬。

其實知道了這個以後,要在wchar_t 和 char兩種型別之間轉換就不難實現了。

wchar_t 轉換為char 的**如下:

有如下的wchar_t和char變數

wchar_t w_cn = '中';

char c_cn[2] = ;

char *c2w(wchar_t w_cn , char c_cn[2])

其中需要注意的是一個16位的wchar_t需要用兩個8位的char來儲存之。我們可以發現另外一個問題,wchar_t的高位位元組應該儲存在char陣列的低位位元組。(這裡沒有仔細研究了,覺得怪怪的)。

這是完成了wchar_t到char的轉化

c++中怎麼把一個字元轉換成字串

4樓:匿名使用者

char a = 'a';

char str = ;

5樓:天方夜譚的哆啦a夢

#include"stdio.h"

#include

#include

voidmain()

intn=123456789;

charstr[20];

itoa(n,str,10);

printf("%s\n",str);

擴充套件資料int轉string的方式

1、採用標準庫中的to_string函式。

inti=12;

cout<不需要包含任何標頭檔案,應該是在utility中,但無需包含,直接使用,還定義任何其他內建型別轉為string的過載函式,很方便。

2、採用sstream中定義的字串流物件來實現。

ostringstreamos;//構造一個輸出字串流,流內容為空;

inti=12;

os

請教將char型別字串轉換成wchar

6樓:匿名使用者

參考multibytetowidechar

函式。延伸wchar轉char 用 widechartomultibyte

c++中怎樣將字元陣列轉化成字串變數?

7樓:我不廢了

解1:首地址bai複製

string a;

char stringarray[100];

stringarray="changestring";

a=stringarray;

解du2:元素按位賦值

string a;

char stringarray[100];

stringarray="changestring";

int i=0;

while(stringarray[i]!zhi='\0')a[i]='\0';

解3:根據

daostring的連線特性,粘專合性

vs2010中,怎麼把wchar_t 字串轉換成char*?

8樓:

#define char2wchar(lpmultibytestr,cbmultibyte,lpwidecharstr,cbwidechar) \

multibytetowidechar(cp_acp,0,lpmultibytestr,cbmultibyte,lpwidecharstr,cbwidechar)

#define wchar2char(lpwidecharstr,cbwidechar,lpmultibytestr,cbmultibyte) \

widechartomultibyte(cp_acp,0,lpwidecharstr,cbwidechar,lpmultibytestr,cbmultibyte,null,null)

char outbuf[256];

wchar_t instr=l"abc";

wchar2char(instr,-1,outbuf,256);

c++怎樣將字串轉換成字元陣列型別

9樓:匿名使用者

string a("1234");

//假設f的引數為const char*

f(a.c_str());

//假設g的引數為char*

char *b = new char[a.size()+1];//注意最後有一個'\0'

strcpy(b, a.c_str);

g(b);

delete b;

a.c_str(),少了一個括號。

10樓:97樂於助人

如果你想把一個字串變成陣列,你只需要將字串初始化為陣列變數的值即可。

例如:char c[10]=「this is !";

11樓:九以柳

不用你轉換

在string類中中,他就實現了這個功能。

比如:string str="abcdefg";

str[3]就為字串中的d(第四個字元)

12樓:allen穆迪埃

#include

#include

using namespace std;

int main(const char* p)or:char a[10];

string str="hello";

for(int i=0;i<10;i++)a[i]=str.c_str()[i];

或者用字串常量

const char *a;

string str="hello";

a=str.c_str();

13樓:匿名使用者

char p[1000];

scanf("%s",p);

c如何將字串轉換為數字,c 數字怎麼轉換成字串程式碼?

四舍 入 介面上放一個textbox,id為a 根據你在文字框中輸入的值進行下面邏輯的判斷 string newdata 宣告一個,用來盛放轉換後的值 string type type a.text.substring 0,1 tostring 擷取第一位符號位 if type newdata co...

c中如何將字串與顏色相互轉換

string c1 system.drawing.colortranslator.tohtml system.drawing.color.red c1 ff0000 或c1 red system.drawing.color c2 system.drawing.colortranslator.from...

c語言刪除字串中的字元,C語言 刪除字串中指定的字元

受災 這個容易,就是把指定位置的字元去掉,也就是說後面的字元覆蓋比如刪除指定的字元在字串中第一個出現的位置void strdel char str,char ch if p 希望能解決您的問題。 微俊 include include int main s i 0 printf input a cha...