記錄字串初始化、i/o操作
char str=
"abc"
;char str=
;// 末尾沒有\0, 列印會出現亂碼
char str[10]
=;// 初始化長度小於陣列長度時, 會自動新增 \0
char
*p =
"abc"
;
char
* p =
"abc"
;printf
("%s\n"
, p)
;// abc
prinft
("%s\n"
,*p)
;// a?????找不到結束符,會一直列印
printf
("%s\n"
, p[0]
);// 同上
printf
("%c\n"
,*p)
;// a
printf
("%c\n"
, p[0]
);// a
注意:陣列變數是乙個特殊的指標,不能修改它的指向;如果被使用的陣列會改變指向,可以用指標型別
。
char cs=
"abc"
;cs =
"bcd"
;// err: 表示式必須是乙個可以修改的左值
// 說明cs已經被修飾為 char const* cs
為什麼要把陣列設計為常量指標?解釋1:確保函式執行完成後編譯器好釋放空間,如果陣列位址可以改變但長度沒有改變,最終導致釋放的記憶體區域不正確(為什麼不做乙份首位址拷貝?,原諒我天馬行空的想法)。
/**
* 字串拷貝
* @param to 儲存拷貝結果
* @param from 拷貝源
* @return len 拷貝成功返回有效字元個數, 否則返回0
*/int
str_cpy
(char
* to,
char
* from)
c 字串操作
獲得漢字的區位碼 bytearray newbyte 2 求字串長度 求字串長度 int len string inputstring 檢測含有中文字串的實際長度 str為要檢測的字串 asciiencoding n new asciiencoding byte b n.getbytes str i...
C 字串操作
1.根據單個分隔字元用split擷取 例如複製 如下 string st gt123 1 string sarray st.split 即可得到sarray 0 gt123 sarray 1 1 2.利用多個字元來分隔字串 例如複製 如下 string str gtazb jiangjben 123...
C字串操作
c字串操作 注 文中的幾個大小寫不敏感比較函式,原文用的是stricmp等,後來發現linux的std庫沒有,改為strcasecmp系列。函式名 strcpy 功 能 拷貝乙個字串到另乙個字串 用 法 char strcpy char destin,char source 程式例 i nclude...