1,使用字元陣列,**如下:
char name="wangtianqiao";
char *cpoint;
cpoint = name ;
printf("%s\n",name);
printf("%c",name[4]);
printf("%c",*(cpoint+4));
2,使用字元指標,**如下:char *cpoint="wangtianqiao";
printf("%s",cpoint);
3,把字串a賦值給字串b,注意字串都是以'\0'結尾的,
char a="i am a boy.",b[20];
int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
for(i=0;*(b+i)!='\0';i++)
printf("%c\n",*(b+i));
4,字串的經典賦值:for(;(*b++ = *a++)!='\0';);
上面這一句就可以完成賦值 語句了。
等價於:
while((*b++=*a++)!='\0');
5,字元指標變數指向格式字串,可以使用printf直接輸出。
char *format = "a=%d";
printf(format,10);
6,指標陣列中的每乙個元素都是乙個指標,其指向不同的記憶體區域,如果指標陣列元素指向的是字元陣列,那麼可以使用字元庫函式,如下:
char *p[2]=;
printf("%x\n",p[0]);
printf("%x\n",p[1]);
if(strcmp(p[0],p[1])<0)
printf("%s",p[0]);
getch();
7,指標相減得到的是相差的個數而不是位元組數
如下**,輸出的值為3,
int a=;
int *p1,*p2;
p1 = &a[1];
p2 = &a[4];
printf("%d",p2-p1);
8,指標的比較必須在 同乙個陣列中進行比較。不在同乙個陣列進行比較,是沒有意義的。
int a=;
int *p1,*p2;
p1 = &a[1];
p2 = &a[4];
printf("%d\n",p2-p1);
if(p1 本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串 red yellow blue green white after sorted b... 講這個例子前,咱們先來看乙個簡單的程式 字串陣列實現數字轉字母 include include int main void 當然我們也可以這麼寫,用指標的形式來表示 include include int main void 同樣的,結果也是和上面是一樣的,我們再對這種寫法進行簡化,如果初學者的基礎... 在 c 語言中,字串實際上是使用 null 字元 0 終止的一維字元陣列。ps char 型變數預設初始化的值為 0 由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。其實,不需要把 null 字元放在字串常量的末尾。c 編譯器會在初始化陣列時,自動把 0 放在字串...C語言字串 字串排序
c語言字元轉字串 C語言字串的另類用法
C語言的字串