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.pswp.cn/news/455602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455602.shtml
英文地址,請注明出處:http://en.pswp.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開發 (數據分析工程師)網絡爬蟲 (網絡爬蟲工程師)高數和數據分析 (數據分析工程師)人工智能和機器學習 …