字符串处理

读取

先定义:

char ch[100];string s;

cin>>scin>>ch以空格或换行符结束
gets(ch);//gets只能读字符数组,不能直接读字符串stringgets和getline会把第一次出现的换行符先前的字符串读进去(包括空格),碰到\n停止>
getline(cin,s);//getline只能读string,不能读char
putsgets读入的所有全部输出(包括\n)(但cout不会输出\n)

常用函数

char c;

检查所传的字符是否为小写字母:islower(c);

检查所传的字符是否为大写字母:isupper(c);

小写变大写:c=toupper(c);

大写变小写:c=tolower(c);

字符数组c1[] c2[]:

strcpy(c1,c2);//把c2复制给c1 。

strlen(c1);//返回c1字符数组的长度。

strcat(c1,c2);//c2拼接在c1后 。

strcmp(c1,c2);//比较c1 c2的大小,c1>c2返回1 c1==c2返回0,c1<c2返回-1。

编写代码:

char c1[20],c2[20];
	cout<<"请输入c1:" ; 
	gets(c1);
	cout<<"请输入c1:" ;
	gets(c2);
	
	int a=strcmp(c1,c2);//比较c1 c2的大小,c1>c2返回1 c1==c2返回0,c1<c2返回-1 
	cout<<"strcmp(c1,c2)得到:"<<a<<endl;
	
	strcpy(c1,c2);//把c2复制给c1 
	cout<<"strcpy(c1,c2)后c1:"<<c1<<endl;
	cout<<"strcpy(c1,c2)后c2:"<<c2<<endl;
	
	strcat(c1,c2);//c2拼接在c1后 
	cout<<"strcat(c1,c2)后c1:"<<c1<<endl;
	cout<<"strcat(c1,c2)后c2:"<<c2<<endl;

运行结果: 

char ch[20],c ;

strchr(ch,c);//返回c第一次出现在ch中的地址,输出能得到从c开始的子串

cout<<strchr(ch,c)-ch;//用c的地址-ch的首地址,即可得到c的相对位置,即编号

strrchr(ch,c);//返回最后一次出现在ch中的地址

编写代码:

char ch[20],c;
cin>>ch>>c;
cout<<"strchr(ch,c)="<<strchr(ch,c)<<endl;
cout<<"strchr(ch,c)-ch="<<strchr(ch,c)-ch<<endl;

运行结果: 

char ch[]="100.1+10";

atoi(ch);//返回100,atoi将字符数组转换为整型数组,遇到第一个非数字字符时停止转换。

同理atol(ch),atoll(ch),分别时转换为long,long long数组。

需注:atof(ch)也能识别小数点,转换为浮点类型,此时返回100.1。

字符串string

定义:string s1="asdfgh",s2="we";char ch[]="thischararry"

函数介绍

s1.length()、s1.size();都是返回string的长度6。

s1.substr(1,2);//返回sd,该函数第一个参数为子串起始位置,第二个参数为子串长度,该函数返回子串

s1.find('f');//返回字符f在s1中的位置。

s1.insert(2,s2);//向s1的位置2插入字符串s2,此时s1="aswedfgh"。

s1.insert(2,ch);//向s1的位置2插入字符数组,此时s1="asthischararrydfgh"。

s1.insert(2,ch,4);//向s1的位置2插入字符数组的前4个字符,指定插入字符个数只能是字符数组,不能是字符串,此时s1="asthisdfgh"。

s1.insert(3,5,'c');//向s1的位置3插入5个字符‘c’,此时s1="asdcccccfgh"。

s1.erase(3,2);//删除s1的从3下标开始长度为2的字符串,此时s1="asdh"。

s1.replace(2,3,s2);//把下标为2,长度为3的子串替换为s2,此时s1="asweh"。

s1.replace(2,3,s2,0,1);//用s2的下标0-1的子串替换s1下标为2-3的子串,此时s1="asweh",注意:此时s2也可为字符串数组。

reverse(s1.begin(),s1.end());//将s1进行翻转,此时s1="hgfdsa"。

reverse(s1.begin(),s1.begin()+3);//将s1的前3个字符进行翻转,此时s1="dsafgh"。

int a=123;

string s=to_string(a);//把整型a转换为字符串。

a=stoi(s);//把字符串s转换为整型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/523991.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用Flutter框架实现iOS应用的跨平台发布策略

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

【Linux】正则表达式实验操作实例

正则表达式是一种强大的工具&#xff0c;用于在文本中查找、匹配和替换特定的字符串模式。 实验目的 掌握正则表达式的表达方式掌握grep/egrep命令的用法掌握sed 命令的用法掌握awk命令的用法 正则表达式 实验目的实验内容实验过程创建grep文件来进行如下操作用sed命令完成下列…

HAL STM32 定时器PWM DMA输出方式

HAL STM32 定时器PWM DMA输出方式 &#x1f9e8;遗留问题&#xff1a;当配置RCR重复计数器&#xff0c;配置为2时&#xff0c;在定义了3组PWM参数情况下&#xff0c;只能输出第二组参数的PWM波形。&#xff08;HAL_TIM_PWM_Start_DMA(&htim1, TIM_CHANNEL_1, aCCValue_Buff…

Java中网络编程,Junit单元测试详解

文章目录 软件结构C/S结构B/S结构 概述三要素IP &#xff08;银行的位置&#xff09;端口 (银行中某个柜台号)协议 (填写取款单的规则)TCP通信程序TCP通信原理客户端发送数据服务端接收数据过程图三次握手 Junit单元测试概述常见的注解使用断言概述使用 软件结构 C/S结构 客户…

怀俄明探空站数据解算PWV和Tm

1. Matlab 获取代码可关注公众号WZZHHH回复&#xff08;怀俄明探空站数据解算PWV和Tm&#xff09;&#xff0c;或者咸鱼关注&#xff1a;WZZHHH123 怀俄明探空站数据解算PWV和Tm&#xff1a; 有关 Matlab 获取代码可关注公众号WZZHHH回复&#xff08;怀俄明多线程下载&#…

mysql_secure_installation初始化数据库报Access denied

使用mysql_secure_installation配置时出错&#xff1a; 可能输入密码错误&#xff0c;重新复制&#xff0c;粘贴密码。 或者&#xff1a; 登录mysql&#xff0c;设置密码&#xff0c;然后再设置权限。 mysql -u root -p [输入密码] sql>set passwordpassword("newPa…

数据同步工具datax安装配置与示例

文章目录 一、部署步骤1、jdk环境2、python环境步骤一&#xff1a;安装方式一&#xff1a;官网下载安装包方式二&#xff1a;brew命令安装 步骤二&#xff1a;配置环境变量步骤三&#xff1a;验证 3、maven环境&#xff08;可选&#xff09; 二、下载安装datax1、下载datax源码…

100 个网络基础知识,看完成半个网络高手

100 个网络基础知识&#xff0c;看完成半个网络高手。 1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层&#xff1a;物理层&#xff0c;数据链路层&#xff0c;网络层&…

入门微调预训练Transformer模型

大家好&#xff0c;HuggingFace 为众多开源的自然语言处理&#xff08;NLP&#xff09;模型提供了强大的支持平台&#xff0c;让这些模型能够通过训练和微调来更好地服务于各种特定的应用场景。在大型语言模型&#xff08;LLM&#xff09;迅猛发展的今天&#xff0c;HuggingFac…

配置vscode用于STM32编译,Debug

配置环境参考&#xff1a; Docs 用cubemx配置工程文件&#xff0c;用VScode打开工程文件。 编译的时候会有如下报错&#xff1a; vscode出现process_begin :CreateProcess failed 系统找不到指定文件 解决方案&#xff1a;在你的makefile中加上SHELLcmd.exe就可以了 参考…

数据库系统

三级模式 外模式 数据库的用户使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图&#xff0c;是与某一应用程序有关的数据的逻辑表示。 概念模式 它是数据库中全体数据的逻辑结构和特征的描述&#xff1b;模式是所有用户的公共数据视图。因为数据库是多人共享使用的&…

CICD流水线 发布公用jar到maven私仓

3.1 发布公用jar到Maven私仓 1.选择流水线 2.新建流水线 3.选择模版 4.选择代码仓库 5. 调整构建命令 6.新增一个新阶段为 ”发送通知“&#xff0c;这里以邮件通知为例&#xff0c;保存之后&#xff0c;运行该流水线&#xff0c;对应jar就会自动发到我们私仓&#xff0c;并之…

春招-实战项目冲刺直播课

春招-实战项目冲刺直播课 CCtalk 丰富多元的综合内容平台-专业的知识分享与在线教育平台https://www.cctalk.com/m/group/91161801

CTF之社工-初步收集

题目就一个刷钻网站&#xff08;假的&#xff09; 扫描一下目录 发现还有一个登录界面 时间多的可以爆破一下&#xff08;反正我爆不出来&#xff09;&#xff0c;接着我们下载那个压缩包看看 发现是一个钓鱼小软件 没发现什么有用的信息那我们就去wireshark看看数据包喽&#…

winform 等待加载窗体

winform 等待加载窗体 当我们查询sql语句或处理大量的数据时&#xff0c;为了防止界面假死状态&#xff0c;可以加一个等待窗体过渡一下。 1. 新建一个主窗体&#xff0c;一个等待窗体frmLoading 2. 给等待窗体增加一个动态图片 3. 在主窗体中调用 namespace winformLoading…

解析以及探讨数据库技术及其应用

一&#xff0c;引言 数据库作为信息时代的基石&#xff0c;是一种用于高效存储、管理和检索大量结构化数据的系统。它的核心价值在于提供了一种可靠且可扩展的方式&#xff0c;将复杂多样的数据按照特定结构和规则组织起来&#xff0c;以便于不同用户和应用程序进行访问和使用。…

揭秘!接口自动化测试应该做什么?

在软件开发过程中&#xff0c;接口测试是一个至关重要的环节&#xff0c;它确保了系统或组件之间的数据交换、传递和控制管理过程以及相互逻辑依赖关系的正确性。传统的瀑布软件流程中&#xff0c;测试人员在做某个系统的手工功能测试时&#xff0c;会首先从业务人员或开发人员…

vitepress系列-04-规整sideBar左侧菜单导航

规整左侧菜单导航 新建navConfig.ts 文件用来管理左侧导航菜单&#xff1a; 将于其他的配置分开&#xff0c;避免config.mts太大 在config目录下&#xff0c;新建 sidebarModules文件目录用来左侧导航菜单 按模块进行分类&#xff1a; 在config下新建sidebarConfig.ts文件&…

Visual Studio 配置代码风格审查工具cpplint

文章目录 一、Visual Studio 配置代码风格审查工具cpplint1、安装2、运行3、集成到Visual Studio4、集成到Git 前言 cpplint是一个用于检查C代码风格的工具&#xff0c;它可以帮助我们发现潜在的编码问题&#xff0c;提高代码质量。cpplint遵循Google的C编码规范&#xff0c;通…

【c++练习】求3个长方柱的体积

【问题描述】编写一个基于对象数组的程序&#xff0c;用成员函数实现多个功能&#xff0c;求3个长方柱的体积。要求用成员函数实现以下功能&#xff1a; 1、由键盘分别输入3个长方柱的长、宽、高&#xff1b; 2、计算长方柱的体积&#xff1b; 3、输出3个长方柱的体积。 【…