簡體   English   中英

C ++如何將大字符串放入固定的char數組

[英]c++ how to put large string into fixed char array

嘿,我有一個很長的字符串,我正試圖將其粘貼在固定大小的char數組內。 我不在乎字符串是否被切掉,我只希望char數組的每個元素都具有某些內容。

例如

char first_ten_alaphabet[10];
string str = "abcdefghijklnopqrstuvwxyz";


strcpy(first_ten_alaphabet, str.c_str());  //<-- this will cause program to break

任何幫助都會很好,謝謝

如果您想復制(並可能截斷)C樣式的字符串,那么我將使用strncpy而不是“ strcpy()”。

strncpy()的一個局限性在於,如果#/字符完全等於復制長度,則該字符串不會以字符串結尾。 這是設計使然,但是如果您不期望的話,則可能是“陷阱”。 只需添加第二條語句,將NULL字符放在最終位置:

char first_ten_alphabet[10];
string str = "abcdefghijklnopqrstuvwxyz";

strncpy(first_ten_alphabet, str.c_str(), sizeof(first_ten_alphabet));
first_ten_alphabet[sizeof(first_ten_alphabet)-1] = '\0';

使用std:copy, http copy(str.begin(),str.begin()+sizeof(first_ten_alaphabet),first_ten_alaphabet);

暫無
暫無

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

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