C 型別轉換之char轉string

2021-10-01 15:33:28 字數 1873 閱讀 5937

1.遇到的問題

最近專案在做去qt化,沒辦法,qt確實好用,但是要安裝qt庫,為了和各個現場的環境一致,只能用原汁原味的c了。

qt拼接字串:

qstring qstrdevpoint =

qstring

("{type:%1content:%2,compress,").

arg(com_func_msg_8)

.arg

(g_pfeacess-

>m_facname.

c_str()

);qstrdevpoint +

=qstring

("%1,%2,%3;").

arg(info.offset)

.arg

(info.var.un.uch)

.arg

(info.var.time1.tv_sec)

;

這裡面有個引數info.var.un.uch是char型別,剛開始用c++的string拼接的時候,找了好半天不知道char怎麼轉string。就直接拼在後面了,

string qstrdevpoint =

"{type:"

;qstrdevpoint +

=to_string

(com_func_msg_8)

;qstrdevpoint +

="content:"

;qstrdevpoint +

= g_pfeacess-

>m_facname;

qstrdevpoint +

=",compress,";.

....

qstrdevpoint +

= info.var.un.uch;

//char

結果是令我出乎意料的"\000",正常輸出應該為"0"。找了好多資料,用過網上說的stringstream,無用;其他還有更麻煩的方法,就不說了,沒有乙個成功的。

2.意外的驚喜

前不久剛接觸的字串處理函式,裡面有個to_string(),我一看,引數裡面沒有char型啊,當時也是被網上的說法給帶偏了,腦子亂了,一直在用to_string,但是剛碰到char型,就把這茬給忘了。

最後真的是沒辦法了,抱著試試看的心態,用了to_string

qstrdevpoint +

=to_string

(info.offset)

;//int

qstrdevpoint +

=","

;qstrdevpoint +

=to_string

(info.var.un.uch)

;//char -> string

qstrdevpoint +

=","

;qstrdevpoint +

=to_string

(info.var.time1.tv_sec)

;qstrdevpoint +

=";"

;

趕緊一試,看到結果是0時,真的是哭笑不得。雖然to_string沒有引數為char的,但是char可以轉為int,所以對char型別,也可以使用to_string方法轉為string

3.結語

碼**呢,就是這樣,有時候被乙個小問題折磨的頭疼。第一次遇到問題,也許會多走彎路,但是在解決問題的過程中,也會學到不少東西,這大概也正是程式設計的魅力所在。

c語言中char型別轉int型別

剛才做北郵2010年網研上機題的時候,遇到了char型和int型相互轉化的問題,這裡進行一下總結。今後,可能會多次更新部落格,因為半年做了很多總結,但是都是儲存在word文件上了,現在開始慢慢向csdn部落格轉移。1 char型數字轉換為int型,例如 char a 123 printf d n a...

Matlab中cell型別轉換為string型別

在matlab中呼叫strcat 函式獲得的是乙個cell型別的變數,而不是string型別。這是如果我們直接把這個cell型別的變數,傳遞到其他函式中作為string型別使用,就是出現問題,下面是乙個例子 names len names length names for i 1 len names...

c 中int轉換為char 型別

在學習c opencv時,想讀取有規律的一些影象,影象名時有規律的數字,要用到int 轉char 型別,可以寫 但是為了方便和整潔打算用c 自帶的函式寫成。在轉換時要用char 類的,因為在這裡我們不能初始化char 所以要分配一塊記憶體空間。include int i 0 char itc 10 ...