簡體   English   中英

如何使用 string(int, char) function 添加或更改聲明字符串的值?

[英]How to add or change value for a declared string using string(int, char) function?

我知道有一種方法可以在聲明字符串時將重復 n 次的特定字符的值賦予字符串,如下所示:

string example(int, char);

但是如果我一開始沒有給它一個值,以后是否可以使用重復的字符 function 呢?

我試過這樣做,但沒有奏效:

string example;
example(int, char);

我收到此錯誤“調用 class 類型的 object 沒有適當的 operator() 或轉換函數到指針函數類型”

你不能完全做到這一點,但這是下一個最好的事情。 如果需要增加/減少大小,可以使用std::string::resize() ,它有第二個參數來填充新的char 所以試試這個:

std::string foo;
foo.resize(10, 'A');
std::cout << foo << '\n';

output 將是: AAAAAAAAAA

但是,請注意,如果您嘗試這樣做:

std::string a = "a";
a.resize(2, 'A');

a將變為"aA" ,因為它不會覆蓋以前的字符,只會覆蓋新的空字符。 要覆蓋以前的,您可以使用std::fill

std::string a = "aaa";
std::fill(a.begin(), a.end(), 'A');

它會變成"AAA"

[編輯] 正如@churill 所說,重用構造函數a = std::string(10, 'A')也會將字符串的值設置為"AAAAAAAAAA" ,因此如果您不這樣做,您可以將其用作更簡單的方法不介意丟失以前的值。

暫無
暫無

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

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