//原理
一个个从前往后找,找到第一个不是数字的字符位置用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);


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 15, comments - 2, trackbacks - 0, articles - 29

Copyright © 美洲豹