我需要创建一个从 1000.1111.1111 到 1000.1131.1111 或类似范围的 MAC 地址的字符串向量。
我不确定如何增加字符串,或者如果我连接然后如何保持前导零。
任何指针表示赞赏。
是的,这些是十六进制的。虽然我不介意只处理 base 10 的解决方案。
我需要创建一个从 1000.1111.1111 到 1000.1131.1111 或类似范围的 MAC 地址的字符串向量。
我不确定如何增加字符串,或者如果我连接然后如何保持前导零。
任何指针表示赞赏。
是的,这些是十六进制的。虽然我不介意只处理 base 10 的解决方案。
这将生成一个字符串向量,如下所示:
1000.1111.1111
1000.1111.1112
1000.1111.1113
<...>
1000.1112.1111
1000.1112.1112
<...>
1000.1131.1111
代码:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
//Converts a number (in this case, int) to a string
string convertInt(int number)
{
stringstream ss;//create a stringstream
ss << number;//add number to the stream
return ss.str();//return a string with the contents of the stream
}
int main(int argc, char *argv[])
{
//The result vector
vector<string> result;
string tmp;//The temporary item
for( int i = 1111; i < 1139; i++ )
for( int j = 1111; j < 9999; j++ )
{
tmp = "1000.";//the base of the adress
//Now we append the second and the third numbers.
tmp.append( convertInt( i ) ).append( "." ).append( convertInt( j ) );
//and add the tmp to the vector
result.push_back(tmp);
}
}