进制转换及字符串分割提取

来源:互联网 发布:淘宝开店装修多少钱 编辑:程序博客网 时间:2024/05/22 07:45
//进制转换://c语言的进制转换及字符串分割提取用sprintf和sscanf/*我发现std::getline()是最简单的拆分字符串的方法,这个方法有一个可选参数意味着它不只可以按行拆分字符串,如下例子#include <sstream>#include <iostream>#include <vector>int main() {    std::vector<std::string> strings;    std::stringstream f("denmark;sweden;india;us");    std::string s;        while (std::getline(f, s, ';')) {        std::cout << s << std::endl;        strings.push_back(s);    }}*/#include <iostream>#include <sstream>#include <string>using namespace std;int main(){int a;string s;stringstream ss;//10进制转16进制ss<<hex<<13;ss>>s;ss.str("");ss.clear();//16进制转10进制ss<<hex<<"0x1f";ss>>a;system("pause");return 0;}//字符串分割int main(){string s1,s2;stringstream ss;ss<<"http://www.bbc.com";getline(ss,s1,':');ss.ignore(256,'/');ss.ignore(256,'/');//or: ss.ignore(2);getline(ss,s2,'.');getline(ss,s2,'.');system("pause");return 0;}//例如:ip地址取值、转换int main(){string s="192.168.1.35";string s1;int ip1,ip2,ip3,ip4,ip5,ip6,ip7,ip8;char dot;stringstream ss;ss<<s;ss>>ip1>>dot>>ip2>>dot>>ip3>>dot>>ip4;//此时ip1=192,ip2=168,ip3=1,ip4=35ss.str("");ss.clear();ss<<hex<<ip1<<'.'<<hex<<ip2<<'.'<<hex<<ip3<<'.'<<hex<<ip4;ss>>s1;//此时s1=c0.a8.1.23ss.str("");ss.clear();ss<<hex<<s1;ss>>ip5>>dot>>ip6>>dot>>ip7>>dot>>ip8;//此时ip5=192,ip6=168,ip7=1,ip8=35system("pause");return 0;}

0 0