• string的基本用法


      1 #include <iostream>
      2 #include<string>
      3 #include<vector>
      4 #include<algorithm>
      5 using namespace std; 
      6 
      7 
      8 int main(int argc, char** argv) {
      9     string s;
     10     char ss[5000];
     11     //scanf的输入速度比cin快得多
     12     //scanf是c语言的函数,不支持string对象 
     13     scanf("%s",&ss);
     14     //把整个字符数组赋值给string对象
     15     s=ss;
     16     cout<<s<<endl;
     17     //输出字符对象
     18     s=s+'a';      //在string对象尾部添加一个a
     19     s=s+"123";
     20     s.append("123");   //与+具有相同的功能
     21     s="123456";
     22     string::iterator it;
     23     it=s.begin();
     24     s.insert(it+1,'p');   //把p插入到第一个字符前
     25     cout<<s<<endl; 
     26     cout<<s[0]<<endl;     //可用下标来访问string对象的元素
     27     s.erase(it,it+4);     //删除0~4区间的所有元素
     28     s="";    //清空字符串
     29     s="abc123456";
     30     //从第3个开始,将连续的3个字符替换为"good"
     31     //即将"123"替换为"good"
     32     s.replace(3,3,"good");
     33     cout<<s<<endl; 
     34     s="cat dog cat";
     35     //查找第一个字符为'c',返回下标值
     36     cout<<s.find('c')<<endl;
     37     //查找第一个子串为"c",返回下标值
     38     cout<<s.find("c")<<endl; 
     39     //s与"cat"字符串比较,大返回1,等于返回0,小于返回-1
     40     cout<<s.compare("cat")<<endl;
     41     //将字符串s反向排序 
     42     reverse(s.begin(),s.end());
     43     cout<<s<<endl;
     44     //string对象可以作为vector向量的元素,类似于字符串数组 
     45     vector<string> v;
     46     v.push_back("Jack");  
     47     v.push_back("Mike");  
     48     v.push_back("Tom");  
     49     cout<<v[0]<<endl;  
     50     cout<<v[1]<<endl;  
     51     cout<<v[2]<<endl;  
     52     cout<<v[0][0]<<endl;  
     53     cout<<v[1][0]<<endl;
     54     cout<<v[2].length()<<endl;
     55     //string类型的数字化处理
     56     s="1234059";
     57     int i;
     58     int sum=0;
     59     for(i=0;i<s.length();i++)
     60     {
     61         if(s[i]=='0')sum+=0;
     62         else if(s[i]=='1') sum+=1;
     63         else if(s[i]=='2') sum+=2;
     64         else if(s[i]=='3') sum+=3;
     65         else if(s[i]=='4') sum+=4;
     66         else if(s[i]=='5') sum+=5;
     67         else if(s[i]=='6') sum+=6;
     68         else if(s[i]=='7') sum+=7;
     69         else if(s[i]=='8') sum+=8;
     70         else if(s[i]=='9') sum+=9;
     71     }
     72     cout<<sum<<endl;
     73     char sss[100];
     74     //输入字符串到字符数组中
     75     scanf("%s",&sss);
     76     //字符数组赋值给字符串对象
     77     s=sss;
     78     //用printf输出字符串对象,要采用c_str()方法
     79     printf(s.c_str());   //cout<<s<<endl; 用cout输出字符串对象 
     80     cout<<endl; 
     81     //用printf输出字符数组
     82     printf("%s",sss);     //cout<<sss<<endl;   用cout输出字符数组 
     83     cout<<endl;
     84     //sscanf把一个字符串按你的需要的方式分离出子串
     85     string s1,s2,s3;
     86     char sa[100],sb[100],sc[100];
     87     //把字符串分成子串,分隔符为空格
     88     sscanf("abc 123 pc","%s %s %s",sa,sb,sc);
     89     s1=sa;
     90     s2=sb;
     91     s3=sc;
     92     cout<<s1<<" "<<s2<<" "<<s3<<endl;
     93     //用字符串分离成数字,分隔符为空格
     94     //当用到数字的时候,和scanf一样,它要传地址
     95     int a,b,c;
     96     sscanf("1 2 3","%d %d %d",&a,&b,&c);
     97     cout<<a<<" "<<b<<" "<<c<<endl;
     98     //将字符串分离成数字,分隔符为“,”和“$”
     99     //当用到数字的时候,跟 scanf 一样,它要传指针地址
    100     int x,y,z;
    101     sscanf("4,5$6","%d,%d$%d",&x,&y,&z);
    102     cout<<x<<" "<<y<<" "<<z<<endl;
    103     return 0;
    104 }
    
    
  • 相关阅读:
    多态问题----针对方法
    画了个Android——Canvas类的使用(转)
    设计模式之策略模式
    Listview多种布局的使用
    Activity的退出和進入效果
    java.lang.ClassNotFoundException
    台球小游戏
    线性表
    堆栈
    动态内存管理
  • 原文地址:https://www.cnblogs.com/zjl192628928/p/9142039.html
Copyright © 2020-2023  润新知