簡體   English   中英

如何將一個字符數組中的前i個字符復制到C ++中的另一個字符數組中?

[英]How can I copy the first i amount of characters in a character array into another character array in C++?

read(client_sockfd, &chID, 4);
char newID[4];
for(int i; i<5; i++){
     newID[i] = chID[i];
}

我正在通過套接字讀取char chID [4]。 我想將前4個字符放入newID中。 以上是我嘗試過的方法,但是當我將newID復制到字符串中並打印出來時,會得到一些奇怪的輸出。 有指導嗎?

您可以在for循環中聲明i而不對其進行初始化。 這就是您獲得“怪異值”的原因。 為了糾正,您需要編寫:

for(int i=0; i<5; i++)

希望這可以幫助!

只需復制字節:

memcpy(newID, chID, 4);

還有一點需要注意的是,這里似乎有些人忽略了:如果chId為長度4,則循環邊界為i = 0; i <4。 這樣,您就可以得到i = 0,1,2,3。 (一般的編程技巧,可能的話會在您的腦海中展開循環。至少要等到您對程序確實在按照自己的意圖進行操作為止才可以滿意。)

注意:您沒有將chId復制到字符串中。 您正在將其復制到char數組中。 看起來似乎是語義,但是“字符串”用C ++命名了一種不同於字符數組的數據類型。 標題正確,問題描述錯誤。

暫無
暫無

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

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