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 找到這個字元返回下標,多個時返回第乙個 不存在...