C++ 将连字符插入字符串C++;
我有一个电话号码字符串数组,我必须在其中插入连字符。我应该使用什么字符串函数,如何使用?C++ 将连字符插入字符串C++;,c++,string,C++,String,我有一个电话号码字符串数组,我必须在其中插入连字符。我应该使用什么字符串函数,如何使用? 谢谢使用STL字符串函数。迭代字符串数组,并对每个字符串执行以下操作: str_num = str_num.substr(0,3) + "-" + str_num.substr(3,3) + "-" + str_num.substr(6,4); 编辑:你可以使用插入()/,我想这是一个更好的方法。 < p>嗯,我不会给出答案,但是最简单的方法是使用这个方法,假设你正在做C++。 对于C字符串,您必须手动复
谢谢使用STL字符串函数。迭代字符串数组,并对每个字符串执行以下操作:
str_num = str_num.substr(0,3) + "-" + str_num.substr(3,3) + "-" + str_num.substr(6,4);
<>编辑:你可以使用<代码>插入()/<代码>,我想这是一个更好的方法。 < p>嗯,我不会给出答案,但是最简单的方法是使用这个方法,假设你正在做C++。
对于C字符串,您必须手动复制周围的字符。我可能会使用
sprintf
您可以使用strtok
函数将其拆分为令牌
char * strtok ( char * str, const char * delimiters );
您需要在每个字符串的两个特定位置添加两个字符 创建一个函数,该函数接受单个电话号码字符串,并在适当的位置添加连字符。这是一个很好的例子,只需使用字符串连接就很容易了,但这是一个坏习惯。相反,您可以使用
string::insert()
在适当的位置放置连字符
一旦编写了这个简单的函数,您所要做的就是迭代数组并在每个元素上应用该函数。巧合的是,for_each()
函数可以做到这一点。您可以在
中找到它
#包括
#包括
使用连字符无效(字符串和电话)
{
//如上所述
}
// ...
{
对于每个数组(数组、数组+数组长度和带连字符);
}
这是一个家庭作业问题吗?你想把连字符放在哪里?请给出一个输入电话号码及其相应的输出电话号码的示例。您的字符串是std::string
实例还是char*
s?是的,这是一个家庭作业3823920578=382-392-0578@Andrei今晚有这么多人!这是非常低效的,它会产生一些不必要的字符串副本。strncat将是更有用的C风格字符串函数。您需要至少三个单独的调用strcat
或类似的调用,或者您可以执行类似于sprintf(buf,“%.3s-%.3s-%.4s”,s,s+3,s+6)
。只是风格的问题,真的。没有分隔符就不能拆分。10位数字中的分隔符在哪里,以便将其拆分为(3,3,4)位?@Joy Dutta我同意,但当我发布答案时,我想到了另一件事。现在我会使用迭代器。
#include<string>
#include<algorithm>
void with_hyphens(string& phone)
{
// as explained above
}
// ...
{
for_each(array, array + ARRAY_LENGTH, &with_hyphens);
}