有三个基本实现,更不用说高级实现技巧了。
第一种类型:printf(#34%s#34,strsrc)
第二种:看跌期权
第三种:(或用while,原理相同)intifor(i0iltstrlen(strsrc)i)printf(#34%c#34,strsrc[i])根据情况选择使用。
#包含ltstdio.hgt
voidmain(){
字符串单词#34#34
printf(#34请输入任意字符串并按回车键结束。
#34)
scanf(#34%s#34,ampwords)
printf(#34%s#34,words)
}
在网络上看到一段这样的代码,作者在c语言的编辑器里编辑了一下,但是不能t通过。后来才知道c语言只有字符串文件,没有字符串类型。当然也可能有版本的原因。
c字符串类的常用方法
(constchar*s):将string对象初始化为s指向的字符串。
字符串str(#34hello#34)
一个
一个
(size_typen,charc):创建一个包含n个元素的string对象,其中每个元素都初始化为字符c。
字符串str(10,#39a#39)
(conststringampstr):将string对象初始化为string对象str(复制构造函数)。
字符串str(#34abcde#34)
字符串str2(str)
():创建一个长度为0的默认string对象(默认构造函数)。
字符串str
5.使用c语言样式字符串来处理字符串对象。
字符串str#你好!#34
6.获取字符串对象的长度,c语言中使用strlen()获取字符串的长度,c语言中使用()或str.length()。
字符串str(#34hello!#34)
intlen1()
intlen2str.length()
7.将一个字符串对象赋给另一个字符串对象。
字符串str(#34hello!#34)
字符串str2
str2海峡
8.字符串对象的拼接
在c语言中,strcat和strncat函数用于拼接字符串。在c语言中,可以采用以下方法:
字符串str1(#34hello#34)
字符串str2(#34世界#34)
字符串str3str1str2
9.用于将字符串对象、字符和c样式字符串追加到字符串对象。
字符串str(#34hello#34)
字符串str2(#34世界#34)
strstr2
字符串#39a#39
str#34abcd#34
10、()函数,在string对象后添加一个string对象或c风格的字符串。
字符串str(#34hello#34)
字符串str2(#34世界#34)
(str2)
(34abcd#34)
_back()函数向string对象追加一个字符。
字符串str(#34hello#34)
charch#39a#39
str.push_back(ch)
12.对于字符串对象的比较,可以直接使用关系运算符。
字符串str1(#34abcd#34)
字符串str2(#34abcd#34)
if(str1str2)
tbreak
13、字符串对象的比较也可以使用()方法。
intcompare(conststringampstr)const
intcompare(size_tpos,size_tlen,conststringampstr)const
intcompare(size_tpos,size_tlen,conststringampstr,size_tsubpos,size_tsublen)const
intcompare(constchar*s)const
intcompare(size_tpos,size_tlen,constchar*s)const
intcompare(size_tpos,size_tlen,constchar*s,size_tn)const
//示例
字符串str1(#34he世界排名第34位)
字符串str2(#34你好男孩#34)
(6,3,str2,6,3)
14.使用()函数获取子字符串。
字符串str(#34hello#34)
字符串str2(3,2)
15.访问字符串string的元素
字符串str(#34hello#34)
coutltltstr[2]ltltendl
coutltlt(2)ltltendl
16.使用()方法查找字符。
//从字符串的pos位置开始(如果没有指定pos的值,默认从索引0开始)查找子串str。
//如果找到,返回子串第一个字符第一次出现时的索引;否则返回字符串::npos:
string类将npos定义为保证大于任何有效下标的值。
size_typefind(conststringampstr,size_typepos0)const
size_type查找(constchar*s,size_typepos0)常量
size_typefind(constchar*s,size_typepos,size_typen)
size_type查找(charch,size_typepos0)常量
()的方法类似于()的方法,但搜索顺序不同。string.rfind()从指定的位置pos(默认为字符串的结尾)向前搜索到字符串的开头,并在第一次找到匹配项的第一个字符时返回该字符的索引。换句话说,就是找到子串或字符的最后一次出现。
18._first_of()方法从字符串中的指定位置开始,向后(默认情况下索引为0)查找参数中任何字符第一次出现的位置。
字符串str(#34helloworld#34)
intpos_first_of(#34abcde#34)
intpos_first_of(#34abcde#34,1)//第二个参数是位置。
19._last_of()方法在字符串中查找参数中任何字符的最后一个出现位置。
20、_first_not_of()方法查找字符串中的第一个not。参数中包含的字符
21._last_not_of()方法查找字符串中不包含在参数中的最后一个字符。
22、使用()进行插入操作。
stringamp插入(size_tpos,conststringstr)
//在位置pos处插入字符串str。
stringampinsert(size_tpos,conststringstr,size_tsubpos,size_tsublen)
//从位置pos的位置subpos开始插入字符串str的子len字符。
stringampinsert(size_tpos,constchar*s)
//在位置pos插入字符串s。
stringampinsert(size_tpos,constchar*s,size_tn)
//在位置pos处插入字符串s的前n个字符。
stringampinsert(size_tpos,size_tn,charc)
//在位置pos插入n个字符c。
迭代器插入(const_iteratorp,size_tn,charc)
//在p处插入n个字符c,返回插入迭代器的位置。
迭代器插入(常量迭代器p,字符c)
//在p处插入字符c,插入后返回迭代器的位置。
23.使用()删除元素。
stringamplify(size_tpos0,size_tlennpos)//从pos开始删除n个字符。
迭代器erase(const_iteratorp)//删除p处的一个字符,并返回被删除迭代器的位置。
迭代器erase(const_iteratorfirst,const_iteratorlast)//删除第一个到最后一个字符,返回被删除迭代器的位置。
24.使用getline()函数获取字符串输入。
字符串str
getline(cin,str)
25.使用string.empty()函数判断单词。字符串是空的吗?
26.使用string.swap()函数交换两个字符串。
字符串str1#34hello#34
字符串str2#34hello#34
str1.swap
27.()获取或修改字符串的最后一个字符。
字符串str(#34abcd#34)
字符b()
()#39e#39
28.()获取或修改字符串的第一个字符。
_back()删除字符串的最后一个元素。