C和C指针小记(一)-字符输入,函数,ASCII扩展表

1、连续接收输入字符时

int ch;

while(ch != EOF && ch != '\n')

ch 为什么被声明为整形,我们不是需要用它来读取字符的嘛?

因为:EOF是一个整形值,它的位数比字符类型要多,把ch声明为整型可以防止从输入读取的字符意外地被解释为EOF。但这也意味着接收字符的ch必须足够大,足以容纳EOF,这就是ch使用整型的原因。字符只是小整型数而已,所以用一个整型变量容纳字符值并不会引起任何问题。

 

2、一些常用的函数

printf()和scanf() 用于格式化的输出/输入,

getchar()和putchar()分别执行非格式化输入/输出

strncpy()

strcpy()

  第2个字符串参数将被复制到第一个字符串参数,第一个字符串原有的字符串将被覆盖。

strcat()

  接收两个参数,但它的第2个字符串参数添加到第1个字符串参数的末尾。

strcpy() 和strcat() 函数中他们的第1个字符串参数不能是字符串常量。而且,确保目标字符串有足够的空间是程序员的责任,函数并不对其进行检查。

strchr()

  它接收两个参数,第1个参数是字符串,第二个参数是一个字符。它在字符串参数内搜索字符参数第一次出现的位置,如果搜索成功就返回指向这个位置的指针,如果搜索失败就返回一个NULL指针。

strstr()

  和strchr()类似,但它的第二个参数是一个字符串。它搜索第2个字符串在第1个字符串中第一次出现的位置。

 3、转义字符

  对字符转义要有一定的规则:

  1、字符集(Character Set)为每个字符分配了唯一的编号,我们不妨将它称为编码值。在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。

转义字符以 \或者\x 开头,以\开头表示后跟进八进制形式的编码值。以\x开头表示后根十六进制的编码值。对于转义字符来说,只能使用八进制或十六进制。

如:char a = '\61'; // 字符1  八进制

  char b = '\141'; //字符a 八进制

  char c = '\x31'; //字符1 十六进制

  char d = '\x61'; //字符a  十六进制

注意:

·转义字符既可以用于单个字符,也可以用于字符串,并且一个字符串可以同时使用八进制和十六进制。

转义字符的初衷是用于ASCII编码(0-127),所以它的取值范围有限。

·八进制形式的转义字符最多后跟三个数字,即\ddd,最大值是\177

·十六进制形式的转义字符最多后跟两个数字,即 \xdd, 最大取值\x7f.(不是\xff).一般是\x后面+两位数字.不能超过3个,除非是以0开头.

 

转义符号\后面大于127编译器会报错的。

  补充:一般情况下字符集足够表达C语言所需的基本字符,但是也有一些字符集里面没有部分字符。

这时候我们要用三字母词两个问号??加已有字符来表示,这种情况极少出现:

??(

[

??)

]

??!

|

??<

{

??>

}

??

^

??= 

#

??/

\

??~

~

ASCII表的说明:

0~31 前32个是控制字符

32~127 是普通可输出字符

还有ASCII扩展表,一般用来打印西欧字符如: åß∂ƒ˙∆

128~255 是扩展ASCII表。键盘上用 alt + 可打印字符 或者 shift+alt+可打印字符来打印输出到屏幕。

¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ“‘«åß∂ƒ©˙∆˚¬…æΩ≈ç√∫˜µ≤≥÷
⁄€‹›fiflfl‡°··‚—±Œ„´‰ˇÁ¨ˆØ∏”’ÅÍÎÏ˝ÓÔÒÚƸ˛Ç◊ı˜Â¯˘¿

 

 

 

posted @ 2019-02-13 13:57  wjwdive  阅读(416)  评论(0编辑  收藏  举报