c++ cstring 转换 char_cstring.h库常用函数

上周,老师讲了大整数的运算方法,我对大数的存储和运算还有些不理解,仔细思考了一下,其实还是训练孩子对机器存储数据的各种掌握和运用吧。不多想,先期孩子虽然一直学习,但是缺乏对知识的系统整理,借着最近事情不太紧迫,帮着一起整理一下一些必要的东西。

在进行大整数运算的时候,老师提出了一种用字符串的每个字符存储一个整数位的方法进行运算中,老师用到了cstring库,提到了几个相关的字符串操作函数,一并整理一下常用的几个常用函数:

1.strcpy    字符串拷贝:char*strcpy(char* dest, constchar* src );
2.strncpy   字符串固定字符拷贝:char*strncpy(char* dest,constchar* src, size_t num );
3.strcat    字符串连接:char * strcat ( char * dest, const char * src);
4.strncat   字符串固定字符连接char * strncat ( char * dest, const char * src, size_t num );
5.strcmp    字符串比较:int strcmp ( const char * str1, const char * str2 );
6.strchr    字符串中字符查找:const char * strchr ( const char * str, int character );
7.strstr    字符串中字符串查找:const char * strstr ( const char * str1, const char * str2 );
8.strlen    字符串长度:size_t strlen ( const char * str );
9.memset    字符串初始化或者批量重置:void * memset ( void * ptr, int value, size_t num );

1.字符串复制

1.1.strcpy

strcpy的作用是复制整个字符数组到另一个字符数组,因此也就非常简洁,只有两个参数:

char 

前一个是要复制到的目标数组起始位置,后一个是被复制的源数组起始位置。使用也非常简单,下面就用一个例子来说明.

int 

1.2. strncpy

strncpy与strcpy很类似,只是可以指定复制多少个字符。它的原型是:

char 

显前两个参数的含义与strcpy相同,第三个参数num就是要复制的字符个数。需要注意的是因为是部分复制,所以该函数不会帮你添加’0’,要记得在调用完之后自己添加一个。

int 

2.字符串连接

2.1. strcat

strcat的功能是把一个字符串连接到另一个字符串的后面。

char 

前一个是目标字符串,后一个是要添加到后面的源字符串。

int 

2.2. strncat

根据strcpy和strncpy之间的关系,应该猜到,该函数是可以指定字符个数进行连接。

char 

3 字符串比较

3.1. strcmp

对两个字符数组我们不能直接if (s > t)这样比较,要这样比较的是两个字符数组的指针的地址。因此要用到strcmp函数。

int 

两个参数是要比较大小的字符数组,返回值是它们的大小关系。具体方式是:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’0’为止

如果str1和str2相等则返回0;

如果str1小于str2则返回小于零,如果str1大于str2,则返回大于零。

int 

输出结果:

Guess my favourite fruit? orange
Guess my favourite fruit? apple
Correct answer!

4 字符串查找

4.1 strchr

strchr函数可以在一个字符串里找某个字符第一次出现的位置。

const 

前一个是原字符串,后一个是要查找的字符。

int 

输出:

Looking for the ‘s’ character in “This is a sample string”…
found at 4
found at 7
found at 11
found at 18

4.2 strstr

strstr函数可以在一个字符串里查找另一个字符串第一次出现的位置。

const 

其中前一个是文本串,后一个是模式串。

int 

输出:

This is a sample string。

5.其他函数

5.1字符串长度

strlen用于求一个字符数组的长度,注意它是从给定的起始位置开始不断往后尝试,直到遇到’0’为止的,因此它的时间复杂度并不是常数级别的,而是取决于字符数组的长度,在字符数组没有变动的情况下请务必不要重复调用

size_t strlen ( const char * str );

那么参数毋庸置疑自然就是要求长度的字符数组了。

int 

5.2 改变连续一段字符的值

memset是一个非常好用的函数,不仅在字符串方面。它可以把连续一段区间的内存修改成同一个值,以字节为单位。而一个字符正好就是一个字节,这也就让memset可以很好的为字符串的区间修改提供服务。

void 

ptr指向要修改的内存块的起始地址,value是要修改成什么值,num是修改多少个。

int 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django后台管理之商品分类

商品分类 1.建表字段 1.pid:用来绑定父类的 2.path:用来拼接id,保证查询出的数据是按照层级关系展示的2.concat 把表中的两个字段拼接成一个新的字段,通过as重新命名3.查询语句 1.按照第二步拼接成新的字段的名字进行排序查询…

PMT_Stream数据结构

0123 012345670123456701234567012345671stream_type reserved_1elementary_PIDreserved_2ES_info_length 2ES_info_length …(描述信息)3…(描述信息)4crc32 1 节目号 stream_type 8指示了PID为elementary_PID的PES分组中原始流的类型&#xf…

Maven:基本使用

为什么80%的码农都做不了架构师?>>> 1.项目管理工具: Maven的repository,说白了就是dependency的仓库,它按照一定的规则将dependency存放起来,以作缓存,如果本机的 repository找不到某个depen…

UVA 11383 - Golden Tiger Claw(二分图完美匹配扩展)

UVA 11383 - Golden Tiger Claw 题目链接 题意:给定每列和每行的和,给定一个矩阵,要求每一个格子(x, y)的值小于row(i) col(j),求一种方案,而且全部行列之和的和最小 思路:A二分图完美匹配的扩展&#xff…

浅谈web开发以及django的安装和入门

浅谈web开发 1.B/S和C/S结构 B/S:浏览器与服务器进行的交互模式(不需要官方下载的,一夫多妻制) C/S:客户机与服务器进项的交互模式(必须官方下载的,一夫一妻制2.MVC和MVT MVC: M:模型层(Model&#xff0…

大数据可视化html模板开源_大数据时代-可视化数据分析平台必不可少

公众号:不安分的猿人一、项目简介DataGear是一款数据管理与可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持多种数据库, 主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管…

java输出一些内容到日志文件

在eclipse中新建一个项目,在src下新建一个log4j.properties文件,文件内容为下:log4j.rootLogger debug,stdout,D,Elog4j.appender.E org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File E://logs/error.log log4j.appender.E…

PMT_Header-节目映射表的数据结构2

1 标志位 table_id8固定为0x02 ,标志是该表是PAT2段语法标志位section_syntax_indicator 1段语法标志位,固定为13 zero104保留字reserved_12保留字5有用的字节数section_length 12表示这个字节后面有用的字节数&#x…

Django中的Model模型

Model模型 模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。 通常,每个模型对应数据库中唯一的一张表。 每个模型都是django.db.models.Model的一个Python 子类。模型的每个属性都表示为数据库中的一个字段。Django 提供一套自动生成的…

python有多少种模块_python如何查看有哪些模块

Question: 如何查看正则表达式模块re及其相关函数的意义 1、终端命令行下 python >> import sys >> sys.modules ################################### 一长串信息中字段modules对应的模块即为包含的模块。 ################################### >> import r…

浅谈面向对象的javascript几个特性

javascript中的this和new javascript是一门很灵活的语言,尤其是function。他即可以以面向过程的方式来用,比如: function getName() {return 张三 } getName() 也可以以面向对象的方式来用,比如: function User() {th…

【Netty】ChannelHandler和ChannelPipeline

一、前言 前面学习了Netty的ByteBuf,接着学习ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中,ChannelHandler可以被链在一起处理用户逻辑。 1. Channel生命周期 Channel接口定义了一个…

TS流头部的调整字段

见 http://hi.baidu.com/xumingxsh/blog/item/7b178903f1fa98014afb512f.html http://hi.baidu.com/xumingxsh/blog/item/ba50dba320a10da3caefd02f.html

electron 入坑记

最近有个想法,想写个简单的应用程序.平时在 Mac上开发,最终有可能运行在 Windows 上.看了一下,Electron 比较简单,应该可以一试. 关于安装 我机器上是有 Node 环境的,按着官方教程 直接 npm install electron 结果运行到 npm install.js就不到了..下午上班有事,也没管他,结果一…

自动驾驶安全驾驶规则_自动驾驶知识科普 自动驾驶汽车的七大核心技术

自动驾驶技术的本质是用机器视角去模拟人类驾驶员的行为,其技术框架可以分为三个环节:感知层、决策层 和执行层,具体涉及传感器、计算平台、算法、高精度地图、OS、HMI等 多个技术模块。目前自动驾驶L3商业化技术已经成熟,L4级/L5…

orcal数据操作

1.将数据库ZHSY完全导出,用户名baseusernj密码baseusernj导出到D:\daochu.dmp中 exp baseusernj/baseusernjZHSY filed:\daochu.dmp fully exp baseuserhf/baseuserhfZJCPDB fileC:\105hf.dmp ownerbaseuserhf 2.导入那个数据库的用户就写那个,第一个是用户名&#…

H264实时编码及NALU,RTP传输(ZZ)

rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984协议实现H264视频流媒体nalu单元 包起始 0x 00 00 00 01H.264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy/b ... c409cc7cd92ace.htmlhttp://hi.b…

学习具体计划书

计划书10大行动&#xff1a;1. 学习的时候不玩手机学习的时候把手机放在抽屉里&#xff0c;静音2. 及时复习学完一个章节的知识及时复习觉得有做分享的价值就做分享录视频3. 不学习的时间要好好利用花时间做好吃的&#xff0c;把身体弄好多看看心理学的书&#xff0c;<接触青…

初识python

课程介绍: python语言:python语言是一种计算机程序设计语言,实现人机交互的语言 python的课程设计python基础 (python开发工程师)数据库和SQL开发 (数据分析工程师)网络爬虫 (网络爬虫工程师)高数和数据分析 (数据分析工程师)人工智能和机器学习 …