C/C++之string類小結

(1)C++字符串和C字符串的轉換

? ? ? ? ?C++提供了三種方法可以將C++字符串轉化為C字符串,分別是data(),c_str(),copy()成員函數來實現。

? ? ? ? ?1)data()是以字符數組的形式返回字符串內容,但并不添加‘\0’;

? ? ? ? ? 2)c_str()生成一個const char*指針,指向一個空字符的數組,數組中的數據是臨時的,當有一個改變這些數據的成員函數被調用時,數據就會失效(比如說調用c_str()之后字符串發生變化,則c_str()生成的指針指向的數據也會發生變化)

? ? ? ? ?3)copy(p,n,size_type_off=0)表明從string類型對象中至多復制n個字符到字符指針p指向的空間,默認指定位置開始(0),返回真正從對象中復制的字符。(p中一定要確保能夠存儲n個字符)。

(2)string和int類型的相互轉換

? ? ? ? ? 1)int類型轉換為string類型

? ? ? ? ? ? ? ? ? a)可以通過數據流借助緩沖區的概念

? ? ? ? ? ? ? ? ? b)借助snprintf()函數

? ? ? ? ? ? ? ??? int snprintf(char*str,size_t size,const char*format,...);//后面主要的是可變參數,是一些變換的格式和對應需要變換的對象

? ? ? ? ? ? ? ? ? ?功能:如果格式化字符長度小于size,則全部復制,并在末尾添‘\0’;如果大于size,則只復制其中的size-1,并在末尾添零;函數成功返回寫入字符串的長度,失敗返回負值;

? ? ? ? ? 2)string類型轉化成int類型

? ? ? ? ? ? ? ? ?使用strtol(str to long),strtoll(str to long long),strtoul(str to unsigned long),strtoull(str to unsigned long long)函數

? ? ? ? ? ? ? ? ?long int strtol(const char*nptr,char**endptr,int base);

? ? ? ? ? ? ? ? ? 實現字符串nptr根據base轉換成各種類型;參數base的范圍為2~36或0,如果參數指定為0,則會根據具體情況判斷進制,如果前面的字符是0x則為16進制,如果是0則為八進制,否則為10進制;函數執行過程中會掃描參數nptr字符串,跳過前面的空格式串,直到遇上數字或正負號開始轉換,遇到非法數字或字符串結束時結束轉換endptr返回的是遇到不合條件返回的字符串,如果正常則為空

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382289.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2.兩數相加 golang

測試用例1500多個,考慮的情況非常多 測試用例 [0] [1] [2] [3,4,2] [5,0] [2] [1] [0] [9,8] [0] [4,6,5] [5,0] [1] [9] [0] [0,9] [2] [8,0,7] [0,1] [3] [0,1]func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {result : &List…

C/C++之vector的內存管理和效率

(1)vector容器支持隨機訪問,其內部是通過動態數組實現的; (2)當vector執行insert或者push_back時,如果此時動態數組的內存不夠用,則會重新分配當前大小的1.5~2倍的新內存區,把原來數組的內容復制過去; (3)為…

匯頂軟件開發初面總結20180921

博客參考:C中的多態和內部實現:https://www.cnblogs.com/qiaoconglovelife/p/5128523.html 虛函數表存放的地址:https://blog.csdn.net/jiary5201314/article/details/52627630 為什么STL和linux都采用紅黑樹作為平衡樹的實現:htt…

LeetCode 21. 合并兩個有序鏈表 golang

遞歸 func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {if nil l1 {return l2}if nil l2 {return l1}if l1.Val < l2.Val {l1.Next mergeTwoLists(l1.Next, l2)return l1} else {l2.Next mergeTwoLists(l1, l2.Next)return l2} }Me(存在問題)非遞歸版本實現…

深信服C/C++技術一面二面20180924

技術一面&#xff1a;主要是一些關于數據結構和C/C相關的內容 1)鏈表和數組的相同點和不同點&#xff1b; 2&#xff09;了解靜態鏈表嗎&#xff1f;怎么用數組實現靜態鏈表&#xff1f; 3&#xff09;使用庫函數strcpy應該注意的問題有哪些&#xff1f; 4&#xff09;鏈表…

83. 刪除排序鏈表中的重復元素 golang

83. 刪除排序鏈表中的重復元素 golang Me func deleteDuplicates(head *ListNode) *ListNode {if head nil || head.Next nil {return head}result : headfor head ! nil && head.Next ! nil {for head.Val head.Next.Val {head.Next head.Next.Nextif head.Next…

《C++ Primer第五版》習題答案

博客轉載&#xff1a;https://blog.csdn.net/misayaaaaa/article/details/53786215 第一章&#xff1a;https://blog.csdn.net/misayaaaaa/article/details/53200001 第二章&#xff1a; 1~10題&#xff1a;https://blog.csdn.net/misayaaaaa/article/details/53200773 11~…

《C++ Primer第五版》第一章-------IO機制和注釋縮進

C Primer第一章的內容相對來說比較基礎&#xff0c;主要是對C中程序編譯的流程、C中的IO機制&#xff0c;for和while循環的介紹、類的構成和注釋方法及縮進方法做了簡要的介紹&#xff0c;本次博客主要從C中的IO機制和注釋縮進等方面做一個總結記錄&#xff0c;如果在總結過程中…

19.刪除鏈表的倒數第N個節點 golang

官解 一遍寫出來有難度。 [1,2] 2 [2][1,2]1 [1]func removeNthFromEnd(head *ListNode, n int) *ListNode {if n < 0 || head nil {return head}fast : headfor i : 1; i < n && fast ! nil; i{fast fast.Next}if fast nil {return head.Next}slow : headfor…

《C++ Primer 第五版》第二章(1-4小節)------基本內置類型,初始化和賦值及聲明和定義,指針和引用,const和constexpr

C Primer第二章的內容主要介紹了變量和基礎類型&#xff0c;包括C語言定義的基礎內置類型、變量的定義及聲明、符合類型如指針及引用的介紹和const及常量表達式constexpr的介紹&#xff0c;本次博客也從這四個方面進行系統的介紹&#xff0c;如果有不足之處&#xff0c;還望其他…

455. 分發餅干 golang

455. 分發餅干 Me func findContentChildren(g []int, s []int) int {if len(s) 0 {return 0}sort.Ints(g)sort.Ints(s)var count, i, j int 0, 0, 0for { if g[i] < s[j] {i, j, count i1, j1, count1} else {j}if i > len(g) || j > len(s) {return count}}re…

《C++ Primer 第五版》第二章(第5小節)——using和typedef,auto和decltype總結

1.using和typedef&#xff08;作用&#xff1a;定義類型別名&#xff09; 1)typedef和using都可以用來定義一個類型別名&#xff0c;二者在類型別名上定義沒有區別。只是需要注意的是類型和類型別名的順序&#xff0c;使用typedef定義類型別名的結構為 typedef 類型 類型別名&a…

204. 計數質數 golang

一次嘗試&#xff0c;如何擊敗100%用戶&#xff08;用時&#xff0c;內存&#xff09; func countPrimes(n int) int {if n 499979 {return 41537}if n 11 {return 4}if n 12 {return 5}if n 13 {return 5}if n 14 {return 6}if n 15 {return 6}if n 10 {return 4}if n …

leetcode內存消耗

leetcode內存消耗最是多少 執行用時 :0 ms, 在所有 Go 提交中擊敗了100.00%的用戶 內存消耗 :1.9 MB, 在所有 Go 提交中擊敗了94.81%的用戶測試鏈接 Test

《C++ Primer 第五版》(第2.5節,第3.1-3.4節) ——采用預處理功能編寫頭文件,string初始化和字符操作,vector初始化和迭代器

1.采用預處理功能編寫頭文件 在頭文件定義(頭文件中的內容是只能被定義一次的實體)過程中&#xff0c;為了防止頭文件重復包含的情況&#xff0c;采用預處理器的一個頭文件保護符功能,格式為&#xff1a;{ #ifndef 預處理變量(通常大寫) #define 預處理變量 #end…

《C++ Primer 第五版》(第3.5-3.6節) ——C++中的內置數組類型,string對象和C風格字符串

1.C中的內置數組類型 C中的數組是內置數據類型&#xff0c;但不是基礎數據類型而是構造數據類型&#xff0c;是有限個相同數據、占據著連續物理存儲空間的有序集合。而內置數據類型定義的下標運算符可以處理負值運算(只要在數組范圍之內)&#xff0c;這和vector及string的下標運…

793. 階乘函數后K個零 golang

Me(AC 33 / 44 個通過測試用例) func preimageSizeFZF(K int) int {count : 0for i : 0; i < 1000000; i {if trailingZeroes(i) K {count}}fmt.Println(count)//fmt.Println(trailingZeroes(25))return count}func trailingZeroes(n int) int {if n 0 {return 0}return …

小程序radio單選框回顯

話不多說&#xff0c;效果圖如下&#xff1a; 具體代碼如下&#xff1a; <radio-group name"radio" bindchange"getSex"><label><radio value"1" checked"{{xingbie1}}" />男</label><label><radio…

172. 階乘后的零 golang

官解 一般很難想到這個方向&#xff0c;有點類似數學歸納法&#xff1f; func trailingZeroes(n int) int {if n 0 {return 0}return trailingZeroes(n / 5) n / 5 }

《C++ Primer 第五版》(第4.11節類型轉換) ————關于無符號數和有符號數的運算探究

1.關于無符號數和有符號數的運算 關于無符號數和有符號數的運算&#xff0c;在我看來一直是覺得只要有無符號數和有符號數的運算&#xff0c;有符號數就轉化為無符號數&#xff0c;但是在《C Primer 第五版》的p142介紹&#xff0c;關于無符號數和有符號數的運算如下規定的&…