字符函數和字符串函數(C語言)(1,2,3)

字符函數和字符串函數(C語言)(1,2,3)
注意:
字符串在C語言中的特性:
字符函數和字符串函數(C語言)(1,2,3)
函數介紹:
字符函數和字符串函數(C語言)(1,2,3)
1.strlen字符串長度
計算字符串的長度
統計字符串'\0'前的字符個數
字符函數和字符串函數(C語言)(1,2,3)
strlen函數的使用
使用要點:
1.函數的實際參數是地址
2.計算’\0‘前的字符個數,‘\0’不算字符串內容,不計算
3.函數的返回值是無符號數
字符函數和字符串函數(C語言)(1,2,3)
「」雙引號引出字符串內容
默認加上了'\0'結束標誌
而單引號引出單個字符,無結束標誌'\0'
當使用''單引號時strlen函數將一直日後找,直到找到'\0'時,統計'\0'以前的字符個屬於
字符函數和字符串函數(C語言)(1,2,3)
經典題型:(當心被坑)
strlen函數返回的是無符號數
3-6=-3
負數的補碼看作是無符號數那將特別大
字符函數和字符串函數(C語言)(1,2,3)
***strlen函數的模擬實現方式
由於字符地址不被改變
能夠修改成const char* str
1.建立臨時變量計數器
字符函數和字符串函數(C語言)(1,2,3)
2.函數的遞歸(不能建立臨時變量,求字符串長度)
字符函數和字符串函數(C語言)(1,2,3)
3.指針
字符函數和字符串函數(C語言)(1,2,3)
2.strcpy字符串拷貝函數
將一個字符串拷貝到另外一個字符串中
字符函數和字符串函數(C語言)(1,2,3)
strcpy函數的使用
使用要點:
1.arr1目的地,arr2源頭意思是將arr2中的內容拷貝放到arr1中
2.'\0'也會拷貝
3.h被w替代,e被o替代.......
字符函數和字符串函數(C語言)(1,2,3)
***strcpy函數的模擬實現方式
指針
字符函數和字符串函數(C語言)(1,2,3)
代碼改良:
1.1代
字符函數和字符串函數(C語言)(1,2,3)
2.2代
前後置++,在與*結合
發現:先兩個字符賦值,賦值後地址+1,跳到下一字符,在根據賦值後的結果充當判斷條件,若是賦值0,destination將變爲0,不符合循環條件,將跳出循環
{;}爲空語句
返回目的空間的起始地址
字符函數和字符串函數(C語言)(1,2,3)
推薦2代
注意:
1.原字符串中必須包含'\0',不然將會越界訪問,致使出錯
字符函數和字符串函數(C語言)(1,2,3)
2.目標空間足夠大以致於存的下個人字符串,不然也會越界
字符函數和字符串函數(C語言)(1,2,3)
3.目標空間必須可修改,不是常量字符串,常量字符串不可修改
字符函數和字符串函數(C語言)(1,2,3)
3.strcat字符串追加
在一個字符串後追加一個字符串
字符函數和字符串函數(C語言)(1,2,3)
strcat函數的使用
將arr1的內容追加到arr2中
字符函數和字符串函數(C語言)(1,2,3)
使用要點:
1.目標空間足夠大以致於存的下個人字符串,不然也會越界
字符函數和字符串函數(C語言)(1,2,3)
2.兩個字符串都必須包含'\0'
目的地字符串中必須包含'\0',說明我從'\0'處開始追加
源頭地字符串中必須包含'\0',說明我追加結束了
最後也會將'\0'追加到目的地中
字符函數和字符串函數(C語言)(1,2,3)
3.不能本身給本身追加字符串,程序會崩潰
字符函數和字符串函數(C語言)(1,2,3)
爲何不能本身給本身追加?
內容被修改,源頭處的'\0'被覆蓋,沒有'\0'了,會致使死循環,代碼會崩潰
代碼實現strcat函數:
字符函數和字符串函數(C語言)(1,2,3)
代碼優化:
字符函數和字符串函數(C語言)(1,2,3)ide

相關文章
相關標籤/搜索