C
C 语言中,字符串实际上是使用 == ‘\0’ ==字符终止的一维字符数组
#include <string.h>
> 1. 创建
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char greeting[] = "Hello";
> 2. 获取字符串长度
len = strlen(str1);
> 3. 复制:
strcpy(str1, str2); //把str2复制到str1
> 4. 连接:
strcat(str1, str2); //连接str2到str1尾部
> 5. 比较:
strcmp(s1, s2); //相同的,则返回 0;s1<s2 返回<0 ;s1>s2 则返回>0
> 6. 查找
strchr(s1, "s"); //返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
strstr(s1, s2); //返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置
> 7.大小写转化
s[i] = tolower(s[i]); //转小写
s[i] = toupper(s[i]); //转大写
C++
#include <string>
> 1. 创建
string str = "hello world";
> 2. 获取字符串长度
len = s.size();
len = s.length(); //返回string对象的字符个数,执行效果同上
s.max_size(); //返回string对象最多包含的字符数
s.capacity(); //重新分配内存之前,string对象能包含的最大字符数
> 3. 复制:
string s1(str); //调用复制构造函数生成s1,s1为str的复制品
string s2(str,6); //将str内,开始于位置6的部分当作s2的初值
string s3(str,6,3); //将str内,开始于6且长度顶多为3的部分作为s3的初值
string s4(cstr); //将C字符串作为s4的初值(char cstr[] = "abcde";)
string s5(cstr,3); //将C字符串前3个字符作为字符串s5的初值。
string s6(5,'A'); //生成一个字符串,包含5个'A'字符
string s7(str.begin(),str.begin()+5); //区间str.begin()和str.begin()+5内的字符作为初值
> 4. 连接:
s1.append("def"); // 方法一:append()
s2 += s3.c_str(); //方法二:+ 操作符
> 5. 比较:
A.compare(B) //A和B比较,0:相等 1:大于 -1:小于
str == "Li"; // C ++字符串支持常见的比较操作符(>,>=,<,<=,==,!=)
str < "Li";
> 6. 查找
strchr(s1, "s"); //返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
strstr(s1, s2); //返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置
> 7. 插入
s1.push_back('a'); // 尾插一个字符
s1.insert(s1.begin(),'1'); //在制定的位置pos前插入字符char
> 8. 删除
s.erase(iterator p);//删除字符串中p所指的字符
s.erase(iterator first, iterator last); //删除字符串中迭代器
s.erase(size_t pos = 0, size_t len = npos);//删除字符串中从索引
s. clear();//删除字符串中所有字符
> 9. 遍历
for( int i = 0; i < s1.size() ; i++ ){} //下标法
for(string::iterator iter = s1.begin() ; iter < s1.end() ; iter++){} //迭代器
> 10. 替换
s1.replace(3,2,2,'h'); //将当前字符串从3开始的2个字符,替换成2个字符c
s1.replace(6,5,"girl"); //从6索引开始的5个字符,替换成字符串s
s1.replace(s1.begin(),s1.begin()+5,"boy"); //将当前字符串[i1,i2)区间中的字符串替换为字符串s
> 11. 大小写转换
transform(s.begin(),s.end(),s.begin(),::tolower);
> 12. 查找
s.find("chicken");// 1. 查找一个字符串
s.find('i',6)// 2. 从下标为6开始找字符'i',返回找到的第一个i的下标
s.rfind("chicken") // 3. 从字符串的末尾开始查找字符串,返回的还是首字母在字符串中的下标
s.rfind('i') // 4. 从字符串的末尾开始查找字符
s.find_first_of("13br98") // 5. 在该字符串中查找第一个属于字符串s的字符
s.find_first_not_of("hello dog 2006") // 6. 在该字符串中查找第一个不属于字符串s的字符
s.find_last_of("13r98") // 7. 在该字符串最后中查找第一个属于字符串s的字符
s.find_last_not_of("teac") // 8. 在该字符串最后中查找第一个不属于字符串s的字符-
> 13. 截取
const char *split = ",; !";
char *p2 = strtok(str,split); //根据指定分隔符分割
s1.substr(2,5) //从2开始截取长度为5的字符串
> 14. 排序
sort(s.begin(),s.end());
参考:https://blog.youkuaiyun.com/qq_37941471/article/details/82107077
本文详细介绍了C和C++中字符串的操作方法,包括创建、获取长度、复制、连接、比较、查找、大小写转换等功能,并提供了丰富的代码示例。
1662

被折叠的 条评论
为什么被折叠?



