我正在学习字符串类,并且想知道当我在字符串的特定位置插入美元符号或逗号时,例如已经放置在该位置的数字实际发生了什么? .insert()函数会覆盖已放置在该机芯的数字还是先移位它?
#include <iostream>
#include <string>
using namespace std;
void dollarFormat(string &);
int main ()
{
string input;
Get the dollar amount from the user.
cout << "Enter a dollar amount in the form nnnnn.nn : ";
cin >> input;
dollarFormat(input);
cout << "Here is the amount formatted:\n";
cout << input << endl;
return 0;
}
void dollarFormat(string ¤cy)
{
int dp;
dp = currency.find('.'); // Find decimal point
if (dp > 3) // Insert commas
{
for (int x = dp - 3; x > 0; x -= 3)
currency.insert(x, ",");
}
currency.insert(0, "$"); // Insert dollar sign
}
Program Output with Example Input Shown in Bold
Enter a dollar amount in the form nnnnn.nn: 1084567.89 [Enter]
Here is the amount formatted:
$1,084,567.89
答案 0 :(得分:0)
如果在字符串中插入一个字符,则插入点右边的所有字符都将移到右边,然后该字符将覆盖插入点上的现有字符。可能需要重新分配字符串以容纳额外的字符。
覆盖然后转移不会阻止(尝试将其拖出)。