C語言基礎(六)字串及其操作

2021-07-23 00:23:50 字數 1954 閱讀 3203

2016.7.28

字串:

由字元陣列組成並且以』\0』作為結束符。用雙引號包圍起來。

/*字串:字元陣列構成、最後元素'\0'  一般形式 "hello world"

字串和字元陣列主要區別:'\0'  字元陣列沒有'\0',字串有

*/int main(int argc, const char * argv) ;

//字串初始化

char array1[5]=;//1.以字元陣列形式

char array2[5]="da\0y";//2.以字串初始化字元陣列(預設末尾是'\0')內可為空

printf("%s \n",array2);

char *str="day";//3.使用指標形式(使用率超高)指標指向字串的首元素(預設為const常量指標)

//array2

char *p=array1;

printf("%c\n",*(p+1));// a

// str

printf("%c \n",*str);//  d

str++;

printf("%c \n",*str);//  a*/

/* 陣列形式字串,預設為乙個指標常量,不可改變指向,指標形式字串,預設為常量指標:

const * str

相同點:都是指向了字串首元素位置*/

char *str1="hello\0 world";// str1 本身是乙個指標,占用8個位元組

char *p1=str1;

printf("%c \n",*(str1+1));

printf("%s \n",str1);// 輸出指向首位址到'\0'的內容

printf("%c \n",*str1);

//%s 和str1對應出現:獲取指標的字串內容

/* 根據字串記憶體分配位置不同

1.棧    char array[5]=;

2.常量區(預設const)const char *str="day";

3.堆區堆區非常量區,操作比較靈活,都可以改變

char * str2=(char *) malloc(6);

strcpy(str2,"12345");

*str2='m';

printf("%s \n",str2);//m12345

str1++;

printf("%s \n",str2);//12345

free(str2);

str1=null;*/

/*char * str2=(char *) malloc(6);

strcpy(str2,"12345");

*str2='m';

printf("%s \n",str2);//m2345

str2++;

printf("%s \n",str2);//2345

printf("lenth=%lu \n",strlen(str2));// 4  strlen 用來計算實際長度,不包括'\0'

free(--str2);

// free(str2);

str2=null;*/

/*//鍵盤上輸入字串,一定要先有記憶體空間

char *str4 =(char *) malloc(200);

scanf("%s",str4);

char str2[20]="55555";

//    gets(str2);

//    strlen1(str4);

//    printf("%d \n",strlen2(str4)) ;

//    copy(str4);

//    printf("%s\n",copy2(str2, str4));

printf("%s\n",cat(str2, str4));

//    printf("resilt is %d \n",compare(str2, str4));

C語言 基礎六 字串

1 字串描述 字串實際上是使用 null 字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greeting 6 依據陣...

C語言 3 字串

字元陣列 char 看做乙個特殊的字元陣列,在字串結束為止新增 0 結束符 ascii碼0 沒有 0結尾的是普通的字元陣列。使用雙引號定義的字串自動在尾部加上 0 puts s 函式 輸出記憶體直至遇到 0 陣列變數名代表了陣列位址,例如char s 20 s就是陣列位址,不用 s gets s 函...

2 3 字串基礎操作(二)

s.startswith l 判斷字串是否以l開頭 s.endswith n 判斷字串是否以n結尾 計算結果 true false true false s.find x 找到這個字元返回下標,多個時返回第乙個 不存在的字元返回 1 s.index x 找到這個字元返回下標,多個時返回第乙個 不存在...