我在这里尝试做的是编写一个函数repeat
,它接受一个字符串和一个正整数n并返回该字符串重复n次。因此repeat("fho", 3)
将返回字符串" hohoho"。但是,以下测试程序会运行,但不会显示结果或挂起。我试图添加一个系统暂停,但这没有帮助。我错过了什么?
#include <string>
#include <iostream>
std::string repeat( const std::string &word, int times ) {
std::string result ;
result.reserve(times*word.length()); // avoid repeated reallocation
for ( int a = 0 ; a < times ; a++ )
result += word ;
return result ;
}
int main( ) {
std::cout << repeat( "Ha" , 5 ) << std::endl ;
return 0 ;
}
答案 0 :(得分:3)
您的代码似乎有效,但我个人认为我的写法有点不同:
std::string repeat(std::string const &input, size_t reps) {
std::ostringstream result;
std::fill_n(
std::ostream_iterator<std::string>(result),
reps,
input);
return result.str();
}
答案 1 :(得分:0)
我必须同意上面的Naveen。在在线编译器中尝试时,此代码没有问题。见http://codepad.org/PwDtkUEu 您遇到的任何问题都必须归功于您的编译器。尝试重新制作你的项目。