C++之string
1 #include <iostream> 2 #include<string> 3 4 using namespace std; 27 int main(){ 28 29 //C++标准库中的string类型 30 string name("张三"); 31 cout<<name<<endl; 32 //定义初始化方法 33 string s1; 34 string s2("李四"); 35 string s3(s2); 36 string s4(10,'a'); 37 cout<<s1<<endl; 38 cout<<s2<<endl; 39 cout<<s3<<endl; 40 cout<<s4<<endl; 41 //读入字符串并输出 42 string s; 43 cin>>s; //读取到第一个空格就停止了 只能读一部分 有效字符之前如果有空格也会读进来然后扔掉 44 cout<<s<<endl; 45 读取一整行 用getline方法 46 string ss; 47 getline(cin,ss); 48 cout<<ss<<endl; 49 50 //循环每次读一行 ,getline方法是遇到换行符停止 51 string line; 52 while(getline(cin,line)) 53 { 54 cout<<line<<endl; 55 } 56 57 //每次读一个单词 58 string word; 59 while(cin>>word) 60 { 61 cout<<word<<endl; 62 } 63 return 0; 64 }
1 //查看字符串的大小 size方法 2 string st("hello"); 3 //C++中使用size_type类型专门保存字符串大小 4 string::size_type size1=st.size(); 5 cout<<size1<<endl; 6 if(st.empty()) 7 { 8 cout<<"这是一个空字符串"<<endl; 9 }else{ 10 cout<<"这是一个非空字符串"<<endl; 11 } 12 13 //比较大小 汉字通过拼音比较 14 string s1("张飞"); 15 string s2("刘备"); 16 if(s1==s2) 17 { 18 cout<<"张飞和刘备相等"<<endl; 19 } 20 if(s1>s2) 21 { 22 cout<<"张飞比刘备大"<<endl; 23 }else{ 24 cout<<"张飞比刘备小"<<endl; 25 } 26 27 //两个字符串相加 连接操作 28 string ss1("hello,"); 29 string ss2("world\n"); 30 string ss3=ss1+ss2; 31 ss1+=ss2; 32 cout<<ss3<<endl; 33 cout<<ss1<<endl; 34 //字符串和字符串字面值连接的时候必须有一个string类型的值 加好两边不能全是string的字面值 35 string ss5=ss1+"nihao"; 36 cout<<ss5<<endl;
1 #include <iostream> 2 #include<string> 3 //c语言中的头文件前加C 可以在c++中使用 4 #include<cctype> 5 6 using namespace std; 7 8 int main(){ 9 string str("hello"); 10 cout<<str[0]<<endl; 11 12 for(string::size_type i=0;i!=str.size();i++) 13 { 14 cout<<str[i]<<endl; 15 } 16 17 for(string::size_type i=2;i!=str.size();i++) 18 { 19 str[i]='*'; 20 } 21 cout<<str<<endl; 22 23 24 //string 中的字符处理 25 string s("hello!!!"); 26 string::size_type count1=0; 27 for(string::size_type i=0;i!=s.size();i++) 28 { 29 //ispunct方法检测字符串中是否有标点符号 30 //isanum() 31 if(ispunct(s[i])) 32 ++count1; 33 } 34 cout<<count1<<endl; 35 //输入字符串把标点符号去掉 36 string y,result; 37 char ch; 38 bool has=false; 39 getline(cin,y); 40 for(string::size_type index=0;index!=y.size();index++) 41 { 42 ch=y[index]; 43 if(ispunct(ch)) 44 { 45 has=true; 46 }else{ 47 result+=ch; 48 } 49 } 50 if(has) 51 { 52 cout<<result<<endl; 53 }else{ 54 cout<<"没有标点符号"<<endl; 55 } 56 57 58 return 0; 59 }