設置 | 登錄 | 註冊

目前共有12篇帖子。

C++語言之所以難學,就是因為字符串太多了!

1樓 巨大八爪鱼 2012-7-24 16:33

C++中字符串數據類型簡直多如牛毛!

比如char,char*,char[],wchar_t,wchar_t*,wchar_t[],string,wstring,String^,LPCSTR,LPCTSTR,LPCWCH,LPCWSTR,LPTSTR,TCHAR

 

我草居然15種!!!!!!!人家PHP,ASP,JavaScript包括ActionScript這些語言都只有一種字符串,C++居然有15種字符串。怪不得C++這麼難!

2樓 巨大八爪鱼 2012-7-24 16:33
我到現在還不知道到底怎麼將char*轉換為char[]
3樓 巨大八爪鱼 2012-7-30 12:15
還有CString,還有unsigned char!
4樓 巨大八爪鱼 2014-11-16 01:08
Linux環境下的c語言還有他媽一大堆字符串
5樓 117.176.140.* 2014-11-26 13:06
C系列的指針是個難點,但是會了就會覺得它還好用
6樓 巨大八爪鱼 2016-5-24 20:46
char = CHAR 字符變量
char * = LPSTR 字符串指針
char[] = CHAR[] 字符數組
wchar_t = WCHAR 寬字符變量
wchar_t * = LPWSTR 寬字符指針
wchar_t[] = WCHAR[] 寬字符數組


string C++標準庫中的字符串類
wstring C++標準庫中的寬字符串類
String^ 這是微軟在CLR(C++.NET)中搞出來的字符串類(一般情況下根本用不到,也不用去學)

LPCSTR = const char *
LPCTSTR = const char * 或 const wchar_t *(根據項目屬性的設置決定)
LPCWCH = LPCWSTR = const wchar_t *
LPTSTR = char * 或 wchar_t *(根據項目屬性的設置決定)
TCHAR = char 或 wchar_t(根據項目屬性的設置決定)

另外還有COM組件對象模型中的BSTR字符串,一般要轉換為char或wchar_t後才對內容進行處理,不直接使用

unsigned char和char完全相同,使用時可以直接互相強制類型轉換

另外還有MySQL, libxml裡面的一些亂七八糟的字符串類型,基本上都要轉換為C/C++標準字符串類型後才能使用
QT還有QString,本人對此不是很了解
7樓 巨大八爪鱼 2016-6-20 22:27
其實unsigned只是一個相對的概念,並不影響數據的存儲。
比如,一般情況下我們認為int不能存儲「22億」這個數,而unsigned int就可以。但實際上只要printf的占位符一變,int就能「存儲」22億了:
#include <stdio.h>

int main(void)
{
    int i = 2100000000;
    printf("i=%d\n", i);

    i += 100000000;
    printf("i=%d\n", i);
    printf("i=%u\n", i);
}

8樓 巨大八爪鱼 2016-6-20 22:30
9樓 巨大八爪鱼 2016-6-20 22:32
-2和254這兩個數在內存中的存儲方式都是一樣的,只不過用了不同類型的變量去引用它,輸出的字符串不同而已。
10樓 巨大八爪鱼 2016-6-20 22:34
用typedef定義出來的新字符串類型可以無視,但如果是新定義出來的字符串類的話,一般將其轉換為C++標準字符串類型使用。

BSTR不是C++的標準字符串類型,而是微軟搞出來的一種特殊的數據結構。

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
©2010-2025 Purasbar Ver3.0 [手機版] [桌面版]
除非另有聲明,本站採用知識共享署名-相同方式共享 3.0 Unported許可協議進行許可。