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 ...