POJ2105 IP Address

学了一下insert();囧。。

AC program:

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<iomanip>
#include<queue>
#include<map>
using namespace std;
void fn(int p , string aa)
{
  int len=aa.length();
  int sum=0,base=1;
  for(int i=len-1;i>=0;i--)
  {
      int tt=aa[i]-'0';
      sum=sum+tt*base;
      base*=2;      
  }     
  if(p==1)
     cout<<sum;
  else
     cout<<'.'<<sum;
}
int main()
{
int n;
cin>>n;
string cc;
while(n--)
{
  cin>>cc;
  string u,v,w,l;
  u.insert(0,cc,0,8);
  fn(1,u); 
  v.insert(0,cc,8,8);
  fn(2,v);
  w.insert(0,cc,16,8);
  fn(3,w);
  l.insert(0,cc,24,8);
  fn(4,l);
  cout<<endl;
          
}
system("pause"); 
return 0;} 


小结:
(1)、

//insert() 插入字符.其实,insert运用好,与其他的插入操作是一样的.
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s = "hehe";
s.insert(0,"头部"); //在头部插入
s.insert(s.size(),"尾部"); //在尾部插入
s.insert(s.size()/2,"中间"); //在中间插入
cout<<s<<endl;
cin.get();
return 0;
}

(2)、

iterator insert( iterator i, const char &ch ); 

basic_string &insert( size_type index, const basic_string &str );

basic_string &insert( size_type index, const char *str ); 

basic_string &insert( size_type index1, const basic_string &str, size_type index2, size_type num ); 

basic_string &insert( size_type index, const char *str, size_type num ); 

basic_string &insert( size_type index, size_type num, char ch ); 

void insert( iterator i, size_type num, const char &ch ); 

void insert( iterator i, iterator start, iterator end );

insert()函数的功能非常多:

  • 在迭代器i表示的位置前面插入一个字符ch,
  • 在字符串的位置index插入字符串str,
  • 在字符串的位置index插入字符串str的子串(从index2开始,长num个字符),
  • 在字符串的位置index插入字符串str的num个字符,
  • 在字符串的位置index插入num个字符ch的拷贝,
  • 在迭代器i表示的位置前面插入num个字符ch的拷贝,
  • 在迭代器i表示的位置前面插入一段字符,从start开始,以end结束.

相关主题:
replace()

你可能感兴趣的:(POJ2105 IP Address)