Posted on 2008-10-14 20:05
美洲豹 阅读(626)
评论(0) 编辑 收藏 引用
//原理
一个个从前往后找,找到第一个不是数字的字符位置用npos表示,然后
string::substr(0,npos)提取出一个字符串用atoi转换存储一个变量,npos位置上的
字符常量存储到另一个,然后对原字符串进行 string::erase(0,npos+1)操作得到剩下字
符串,继续进行以上操作,就可以了,只是到最后稍做改动就OK了。
//例子
功能:
给定形如“127.0.0.1|1024”的字符串,提取出IP地址字符串和整型端口号。
其中IP和端口号分隔符“|”可替换,默认为“:”,但不可为“.”。
代码如下(VC6+WinXP调试通过):
#include <iostream>
#include <string>
using namespace std;
void getIP( const string fullIP, string& IP, unsigned int& port, const char
dot = ':' )
{
IP = fullIP.substr( 0, fullIP.find_first_of(dot) );
port = atoi( fullIP.substr( fullIP.find_first_of(dot)+1, fullIP.length()
).c_str() );
}
void main()
{
string ip;
unsigned int port = 0;
char abc[] = "127.0.0.1:1024";
getIP( (string)abc, ip, port );
cout << ip << " " << port << endl;
string efg = "192.168.0.1|80";
getIP( efg, ip, port, '|' );
cout << ip << " " << port << endl;
}
pow((int)2,(int)3);
pow((double)2,(double)3);
pow(float,float);
pow(2,3);