String
Posted ymbjrsh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<vector> #include<cstdio> #include<string> #include<algorithm> using namespace std; int main() { char ss[50]; scanf("%s",ss);//string不支持c语言的scanf和printf string s,s1; s="STL"; cout<<s<<endl; s1=s1+‘s‘;//此时s1内正好有‘s‘这一个字符,字符串也一样 cout<<s1<<endl; s=ss; cout<<s<<endl; s=s+‘n‘; cout<<s<<endl; s=s+"yes"; //String支持直接相加 cout<<s<<endl; cout<<s.length()<<endl; string::iterator it; //用insert给string对象插入字符 it=s.begin(); s.insert(it+3,‘p‘); cout<<s<<endl; for(int i=0;i<s.length();i++)//可类似于char数组进行遍历 { } printf(s.c_str());//用printf输出字符串对象,c_str()将string对象转化为char*对象,返回const char*类型(可读不可改)指向字符数组的指针 cout<<endl; char a1[10],a2[10],a3[10]; string ss1,ss2,ss3; sscanf("abc def ghi","%s %s %s",a1,a2,a3);//整型数字等其他格式类似,分隔符不一定要用空格,也可以用其他的 ss1=a1; ss2=a2; ss3=a3; cout<<ss1<<" "<<ss2<<" "<<ss3<<endl; sprintf(a1,"%d",123);//将数值转换为string,打印到字符串中 ss1=a1; cout<<ss1<<endl; cout<<s[3]<<endl; //string对象的元素为一个char字符 cout<<s[3]-‘a‘<<endl; s.replace(2,3,"no");//从第2个(0开始)字符开始的连续3个子字符串替换为"no" cout<<s<<endl; cout<<s.find(‘n‘)<<endl;//查找成功则返回字符或字串的下标值(从0开始,注意包括空格) cout<<s.find("no")<<endl;//查找失败则返回4294967295 cout<<s.compare("asd")<<endl;//若s比括号内字符串大则返回1,相等0,小于-1 s.erase(it+3); cout<<s<<endl; s.erase(it,it+2);//左闭右开,即第0到1这两个元素 cout<<s<<endl; reverse(s.begin(),s.end());//对string对象中的指定区间进行反向排序,头文件#include<algorithm> s=""; //给s赋空字符串用来清空字符串 cout<<s.length()<<endl; cout<<s.empty()<<endl;//若为空,逻辑真,返回1,反之,返回0 vector<string>vt;//string对象作为vector元素 vt.push_back("good"); cout<<vt[0]<<endl; cout<<vt[0][3]<<endl; cout<<vt[0].length()<<endl; return 0; }
以上是关于String的主要内容,如果未能解决你的问题,请参考以下文章
Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段