c++学习

心得

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函数

  1. 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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值