linux&c++ R&D

programing is a pleasure!

How to express string semantic (2)?

(2)string  and related  classes in  c++ STL 
string class  is a portable class.it can be used in many platforms,such as windows,linux,unix,etc!
it encapsulates string semantic and provides many useful member fuctions !
when we use it, don't worry memory overflow,beause it can allocate memory space itself.
In STL,it is defined in header <string>  and std namespace.so if you use it, you will add
#include <string> and
using std::string;or
using std::namespace or
in programe use
std::string define string.
for example:
#include <string>
#include 
<iostream>
int main()
{
  std::string str;
  std::cin
>>str;
  std::cout
<<"your input:"<<str<<std::endl; 
}
member funtions in string is very useful.
I  won't discuss it in detail,for many good books do it!
Although string class isn't a container class,it provides similar interfaces,such as begin(),end().
so you can use it like a container class so it can agree with many generic algorithm  in header <algorithm> .
for example:
string str1( "Alpha Beta Gamma Delta" );
   string::size_type loc 
= str1.find( "Omega"0 );
   
if( loc != string::npos ) {
     cout 
<< "Found Omega at " << loc << endl;
   }
 else {
     cout 
<< "Didn't find Omega" << endl;         
   }

or
string str1( 
"Alpha Beta Gamma Delta" );
   string::const_iterator loc 
= find( str1.begin(),str1.end(),"Omega");
   
if( loc != str1.end() ) {
     cout 
<< "Found Omega at " << loc << endl;
   }
 else {
     cout 
<< "Didn't find Omega" << endl;         
   }

and so on!
some useful associated classes are introduced here.
they are defined in header <sstream>:
  • stringstream - allows input and output
  • istringstream - allows input only
  • ostringstream - allows output only

    An ostringstream object can be used to write to a string. This is similar to the C sprintf() function. For example:
     

     ostringstream s1;
      
    int i = 22;
      s1 
    << "Hello " << i << endl;
      string s2 
    = s1.str();
      cout 
    << s2;


    An istringstream object can be used to read from a string. This is similar to the C sscanf() function. For example:
     

     istringstream stream1;
    string string1 
    = "25";
      stream1.str(string1);
      
    int i;
      stream1 
    >> i;
      cout 
    << i << endl;  // displays 25


      You can also specify the input string in the istringstream constructor as in this example:

     string string1 = "25";
      istringstream stream1(string1);
      
    int i;
      stream1 
    >> i;
      cout 
    << i << endl;  // displays 25

     A stringstream object can be used for both input and output to a string like an fstream object.

     when you are familar with these classes,you are able to handle with string-related problem!

  • posted on 2007-04-20 23:46 丑石 阅读(754) 评论(0)  编辑 收藏 引用


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


    My Links

    Blog Stats

    News

    常用链接

    留言簿(1)

    随笔分类(13)

    随笔档案(17)

    文章档案(1)

    相册

    收藏夹(1)

    Friends' blog

    useful sites

    搜索

    积分与排名

    最新评论

    阅读排行榜

    评论排行榜