心得
1.字符串处理函数
strcat(s1,s2)//将s2连接到s1后,并返回s1
strncat(s1,s2)//只对s2的前n个字母进行操作
strcpy(s1,s2)//将s2复制到s1
strncpy(s1,s2)
strcmp(s1,s2)//比较s1和s2的大小,若s1>s2,返回正整数;若s1=s2,返回0;若s1<s2,返回负整数;
strncmp(s1,s2)
strlen(s1)//计算s1的长度,不计算‘、0’
strlwr(s1)//将s1的大写字母换成小写字母
strupr(s1)//将s1的小写字母换成大写字母
strstr(s1,s2)//返回一个指向在s1中找到的s2的首次出现位置的指针,如果未找到则返回NULL
2.find函数
a.find(b)
:这是 C++ 标准库中std::string
类的成员函数。它用于在字符串a
中查找字符串b
的首次出现位置。如果找到了b
,则返回其在a
中的位置(从 0 开始计数的索引值);如果没有找到,则返回一个特殊值std::string::npos
。if(a.find(b)!=a.npos)
3.substr函数
substr(pos,len),用于提取字符串的子串。
string str = "Hello, world!";
string subStr1 = str.substr(7); // 从索引 7 开始到字符串末尾,结果为"world!"
string subStr2 = str.substr(0, 5); // 从索引 0 开始,长度为 5,结果为"Hello"
1.pos:子串的起始位置,默认为 0,表示从字符串的开头开始。
2.len
:子串的长度,表示从起始位置到字符串末尾的所有字符
3.如果len
加上pos
超过了字符串的长度,substr
函数只会提取从pos
到字符串末尾的子串。
4.resize函数
用于调整字符串的大小。
#include <iostream>
#include <string>
int main() {
std::string s = "Hello";
s.resize(8);
std::cout << "After resizing to 8: " << s << std::endl;
s.resize(3);
std::cout << "After resizing to 3: " << s << std::endl;
s.resize(6, '*');
std::cout << "After resizing to 6 with '*': " << s << std::endl;
return 0;
}
例题
1.删除单词后缀(一本通1141)
给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
string s;
int i,l;
int main()
{
getline(cin,s);
l=s.size();
if(strcmp(&s[l-3],"ing")==0) l-=3;
else if((strcmp(&s[l-2],"er")==0)||(strcmp(&s[l-2],"ly")==0)) l-=2;
for(int i=0;i<l;++i) cout<<s[i];
printf("\n");
return 0;
}
#include <iostream>
#include <string>
int main() {
string s;
getline(cin, s);
int l = s.length();
if (s.substr(l - 3) == "ing") {
s.resize(l - 3);
} else if (s.substr(l - 2) == "er" || s.substr(l - 2) == "ly") {
s.resize(l - 2);
}
cout << s << endl;
return 0;
标签:string,s2,s1,c++,学习,substr,字符串,include
From: https://blog.csdn.net/2301_80465063/article/details/141470498