字串常識

2021-08-31 23:52:29 字數 2022 閱讀 8556

2)sizeof和strlen區別

//使用字串初始化,常用

char buf8 = "abc";

//strlen: 測字串長度,不包含數字0,字元'\0'

//sizeof:測陣列長度,包含數字0,字元'\0'

printf("strlen = %d, sizeof = %d\n", strlen(buf8), sizeof(buf8));

char buf9[100] = "abc";

printf("strlen = %d, sizeof = %d\n", strlen(buf9), sizeof(buf9));

3)'\0' 後面最好別跟數字,因為幾個數字合起來有可能是乙個轉義字元

//\012相當於\n

char str = "\0129";

printf("%s aaaa\n", str);

4)字元'\0', 數字0, 字元'0', null的區別

a) 字元'\0'  ascii碼值為 0 的字元

字元'\0' 和 數字 0 是等級的,'\0'中'\'是轉義字元

char buf[100];

//下面是等級,在陣列第10個位置設定字串結束符

buf[10] = 0;

buf[10] = '\0'; 

b) 字元'0'是字串的某個字元內容為'0', ascii碼值為 48 的字元

char buf[100];

buf[0] = '0'; //第0個字元為字元 '0'

c) null 標準標頭檔案(stdio.h)的巨集 其值為數字 0

4)陣列法、指標法操作字串

char buf = "abdgdgdsg"

char *p = buf;  //buf是陣列首元素位址,它也是指標

for (i = 0; i < strlen(buf); i++)

注意:陣列名也是指標,陣列首元素位址,但是,它是乙個唯讀常量

p++; //ok

buf++; //err

5)字串拷貝函式

int  my_strcpy(char *dst, char *src)

//輔助變數把形參接過來

char *to = dst;

char *from = src;

//*dst = *src

//dst++, src++

//判斷 *dst是否為0, 為0跳出迴圈

while (*to++ = *from++) ;

return 0;

}2、專案開發常用字串應用模型

1、利用strstr標準庫函式找出乙個字串中substr出現的個數

char *p = "11abcd111122abcd333abcd3322abcd3333322qqq";

int n = 0;

do else //如果沒有匹配的字串,跳出迴圈

} while (*p != 0); //如果沒有到結尾

2、兩頭堵模型

char *p = "      abcddsgadsgefg      ";

int begin = 0;

int end = strlen(p) - 1; 

int n = 0;

if(end < 0)

//從左往右移動,如果當前字元為空,而且沒有結束

while (p[begin] == ' ' && p[begin] != 0)

//從右往左移動,如果當前字元為空

while (p[end] == ' ')

n = end - begin + 1; //非空元素個數

strncpy(buf, p + begin, n);

buf[n] = 0;

//如何證明strncpy()拷貝不會自動加字串結束符'\0'

char dst = "aaaaaaaaaaaaaaa";

strncpy(dst, "123", 3);

printf("dst = %s\n", dst); //dst = "123aaaaaaaaaaaa"

基礎常識 什麼是字元以及字串的定義

當你使用到乙個非數字的時候,可能要儲存字母或者標點符號之類的字元時候,在計算機裡它只能儲存一些數字資訊,此時它會把字元資料轉換成一種數字編碼,以便於計算機去識別這些字元。那麼字母列印非字元呢?單引i號適用於字元,數字以及標點符號,但你遇到ascii碼表的時候,你會發現這些字元你是列印不了的,那麼就要...

ORACLE in 字串,字串,字串

因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...