它没有显示任何错误,但出于某种原因我的cout不会出现。我错过了什么吗?我正在尝试将一系列数字转换为典型的电话号码格式。
int numberCount = 0;
string phoneNumberUnform = "12345678";
for (size_t i = 0; i < phoneNumberUnform.length(); i++)
{
numberCount++;
}
if (numberCount = 8)
{
string phoneNumber[10];
phoneNumber[0] = phoneNumberUnform[0];
phoneNumber[1] = "-";
for (int i = 2; i = 5; i++)
{
phoneNumber[i] = phoneNumberUnform[i-1];
}
phoneNumber[6] = "-";
for (int i = 7; i = 10; i++)
{
phoneNumber[i] = phoneNumberUnform[i-1];
}
cout << phoneNumberUnform;
cout << phoneNumber;
return 0;
}
答案 0 :(得分:7)
使用std :: string&#39; s insert成员函数:
#include <iostream>
#include <string>
int main() {
std::string s = "123456789";
s.insert(1, "-");
s.insert(5, "-");
std::cout << s;
return 0;
}
对于手动方法,请调整原始字符串的大小以容纳另外两个字符:
std::string s = "123456789";
std::string temp = s;
int strlen = temp.length();
s.resize(s.length() + 2);
s[1] = '-';
for (int i = 2; i < 5; i++)
{
s[i] = temp[i - 1];
}
s[5] = '-';
for (int i = 6; i < strlen + 2; i++)
{
s[i] = temp[i - 2];
}
在第二个循环中使用temp[i - 2]
索引而不是temp[i - 1]
索引,因为那时我们已经将两个-
字符插入到原始字符串中。