首页 > 编程语言 >c++学习

c++学习

时间:2024-08-26 21:21:33浏览次数:8  
标签:string s2 s1 c++ 学习 substr 字符串 include

心得

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;

标签:string,s2,s1,c++,学习,substr,字符串,include
From: https://blog.csdn.net/2301_80465063/article/details/141470498

相关文章

  • 《机器学习》 贝叶斯分类器 原理、参数讲解及代码演示
    目录一、贝叶斯算法1、简介2、贝叶斯算法具有以下特点:二、贝叶斯原理1、正向概率(先验概率) 例如:2、逆向概率(后验概率)3、公式1)实例12)实例2•目标:•核心:•计算:三、参数讲解1、用法2、参数1)alpha 控制模型合成时的平滑度2)fit_prior是否学习类的先验概率3)c......
  • 基于大语言模型的智能体入门学习
    基于大语言模型的智能体入门学习一、大模型开发背景1、大模型工作原理:2、大模型的固有缺陷不具备知识出现幻觉:使用外接知识库给LLM提供知识无法解决复杂逻辑任务:多个LLM各司其职不擅长数学运算:使用外接工具如计算器等3、现有开发范式检索增强生成(RAG)AIAgent4、调用open......
  • 学习真DDD的最佳路径
    本文书接上回《DDD是软件工程的第一性原理?》,关注公众号(老肖想当外语大佬)获取信息:最新文章更新;DDD框架源码(.NET、Java双平台);加群畅聊,建模分析、技术实现交流;视频和直播在B站。假DDD的特征在开始之前,考虑到目前关于DDD的资料非常多且杂,我们需要具备分辨的能力,确保不......
  • C++实现的数独游戏
    数独游戏是什么数独(Sudoku)是一种基于数字的逻辑推理游戏,起源于18世纪的瑞士数学家莱昂哈德·欧拉(LeonhardEuler)的拉丁方阵,但现代数独的规则由美国架桥杂志在20世纪后半叶所推广,随后在日本得到了广泛流行,并被命名为“数独”(意为“数字独立”)。如今,数独已经成为一种在世界各......
  • 机器学习:svm算法原理的优缺点和适应场景
    1、概述:基本原理:间隔(Margin):SVM试图找到一个超平面,这个超平面不仅能够区分不同的类别,而且具有最大的间隔。间隔是数据点到超平面的最近距离。支持向量(SupportVectors):这些是距离超平面最近的数据点,它们决定了超平面的位置和方向。        支持向量机(SVM)是一种在机器......
  • python基础学习总结(十)
    ​文章目录面向对象一.内置内属性二.对象销毁三.类的继承四.方法重写1.基础重载方法2.运算符重载3.类的属性和方法1.类的私有属性2.类的方法3.类的私有方法五.下划线说明面向对象一.内置内属性属性|定义----|----dict|类的属性(包含一个字典,由类......
  • python学习—redis入门,新手小白轻松学
    目录一.安装redis-py库二.连接redis服务器三.基本操作(1)字符串1.一次添加一个键值对2.一次添加多个键值对3.设置存在秒数4.设置过期时间(秒)5.设置存在天数 完整代码(2)列表1.添加数据2.从右侧删除数据3.从左侧删除数据4.获取列表的长度5.根据索引查找数......
  • C++ 设计模式——享元模式
    C++设计模式——享元模式C++设计模式——享元模式1.主要组成成分2.享元模式内部状态3.享元模式外部状态4.逐步构建享元模式4.1抽象享元类定义4.2具体享元类实现4.3享元工厂类实现4.4主函数5.享元模式UML图享元模式UML图解析6.享元模式的优点7.享元模......
  • 算法的学习笔记—字符串的排列(牛客JZ38)
    ......
  • [我的C语言学习笔记(08)]C语言输入输出以及缓冲区概念
    查阅stdio.h标准库(https://cplusplus.com/reference/cstdio/),可以发现不少输入输出函数。这些是格式输入输出:这些是字符(包括字符串,也即字符数组)输入输出:这篇会介绍几个常用函数的用法,同时介绍缓冲区的概念。文章目录stream的概念输出printf函数putchar函数pu......