几种常见的字符前面补齐0的方法,并且测试该方法的效率。
将该方法循环执行1000000次,使用系统函数总的获取执行时间,源代码如下,测试结果如下。
源代码:
#include <iostream>
#include <string>
#include <algorithm>
#include <sys/time.h>
using namespace std;
/*******************************
* string fill test function.
* done it with 5 ways.
*
* 1, 统计当前字符,然后逐个添加字符
* 2, 总长度确定,定义对应个0,后替换
* 3, 总长度确定,相加后删除对应字符
* 4, 判断字符长度,选择通道在前面添加
* 5, 使用snprintf函数将整型补齐打印为字符
******************************/
/**
* @brief main
* @return
*
* 补齐8个字符
*/
#define STRLEN 8
struct timeval t_begin, t_end;
float t_use;
#define T_TIMES 1000000
int main()
{
cout << "beginning resolve!" << endl;
int num = 110, tmp_num;
string tmp, tmp_str;
//way1
gettimeofday(&t_begin, nullptr);
for (int i = 0; i < T_TIMES; i++)
{
tmp