程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 指針與字符串--字符類型,逃逸字符,字符串逃逸

指針與字符串--字符類型,逃逸字符,字符串逃逸

編輯:關於C語言

指針與字符串--字符類型,逃逸字符,字符串逃逸


字符類型

  char(character)是一種整數,也是一種特殊的類型:字符。這是因為

  ① 用單引號表示的字符字符字面量:‘a’,'1'

  ②‘’也是一個字符

  ③printf和scanf裡用%c來輸入、輸出字符。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char c;
 5     char d;
 6     c = 1;
 7     d = '1';
 8     printf("c = %d,d = %d,d = %c\n",c,d,d);
 9     return 0;
10 }
//運行結果:c = 1,d = 49,d = '1'

  通過例子看到,字符'1'和整數1不相等。字符‘1’和整數49相等。字符也是整數的一種。

字符的輸入輸出

  如何輸入‘1’這個字符給char c ?

  scanf("%c",&c); ---->1

  scanf("%d",&i);c=i; ---->49  

  ‘1’的ASCII編碼是49,所以c == 49時,它代表'1'

 1 #include<stdio.h>
 2 int main ()
 3 {
 4     char c;
 5     int d;
 6     scanf("%c",&c);
 7     printf("c = %d,c = '%c'\n",c,c);
 8     scanf("%d",&d);
 9     printf("d = %d,d = '%c'\n",d,d);
10     return 0;
11 }
//運行結果:輸入 1
      輸出 c=49,c='1'
輸入 49
      輸出 d = 49,d = '1'

  字符的輸入看scanf的參數,%c就是輸入的即是字符;%d就是整數,對應的字符。

混合輸入

  int i;char c;

  scanf("%d %c",&i,&c);

  scanf("%d%c",&i,&c);

  有何不同?

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int i;
 5     char c;
 6     scanf("%d %c",&i,&c);//中間有空格
 7     printf("i = %d,c = %d,c = '%c'\n",i,c,c);
 8     scanf("%d%c",&i,&c);//中間無空格
 9     printf("i = %d,c = %d,c = '%c'\n",i,c,c);
10     return 0;
11 }
//運行結果:
      有空格,輸入1a,1 a,1 a都可以正確讀入整數和字符
      無空格,只能1a可以正確讀入整數和字符。1 a,1 a讀入整數1和空格字符。讀不進字符a。

 字符計算  

1 #include<stdio.h> 2 int main() 3 { 4 char c = 'A'; 5 c++; 6 printf("%c",c); 7 return 0; 8 } View Code

  字符可以轉化為整數運算,結構再轉化為字符。

  字母在ASCII表中是順序排列的;

  大寫字母和小寫字母是分開排列的,並不在一起。

  於是:

  ①‘a’-'A'可以得到兩段之間的距離

  ②A+'a'-A可以把一個大寫字母變成小寫字母

  ③a+'A'-'a'可以把一個小寫字母變成大寫字母。


 

 逃逸字符

  用來表達無法印出來的控制字符或特殊字符,它由一個反斜槓"\"開頭,後面跟上另一個字符,這兩個字符合起來,組成了一個字符。

  如  printf("請分別輸入身高的英尺和英寸,""如輸入\"5 7\"表示5英尺7英寸:")

字符 意義 字符 意義  \b 回退一格 \" 雙引號 \t 到下一表格位 \' 單引號 \n 換行 \\ 反斜槓本身 \r 回車    

  不同的終端shell翻譯可能有區別,通常\b是回退一格不刪除,\t制表符,用於對齊;\n通常執行換行和回車兩個動作。  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved