簡體   English   中英

C ++使用指針地址打印Char

[英]C++ print Char using pointer address

如果我有一個字符串的地址是

(DWORD*)PEFile->ExportTable.pNames[i];

我怎么能打印那個字符串,注意我不知道該字符串的大小

這有點難以解釋,因為它含糊不清,但......

如果.pNames本身是以空字符結尾的字符數組(c-string)或C ++字符串,那么只需:

std::cout << (DWORD*)PEFile->ExportTable.pNames;

如果.pNames [i]是以空字符結尾的字符數組(c-string),只需執行以下操作:

std::cout << (DWORD*)PEFile->ExportTable.pNames[i];

如果它是一個非null的terimnated字符數組而你不知道它的大小,那你就麻煩了。

如果你有字符數組的大小並且它不是空終止,你可以迭代它並打印。 std::copy(PEFile->ExportTable.pNames[i], PEFile->ExportTable.pNames[i] + length, std::ostream_iterator<char>(std::cout, "")); 會在一行中為你做這件事。

如果字符串以null結尾 ,您只需使用:

std::cout << PEFile->ExportTable.pNames[i] << std::endl;

(如果定義了UNICODE並且pNames[i]LPCWSTR則使用std::wcout 。)

如果既沒有null終結符也沒有字符串長度,那么你就搞砸了!

如果你認真對待這是C而不是C ++:

printf("%s", PEFile->ExportTable.pNames[i]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM