[CP1511] Char/字符串

一、数据串/ASCII 简介

char这个数据形态所存放的实际上是一种简短的int,数据大小为8 bits(基本上是)。并且char所存放的是ASCII的编码。并且避免使用char来存放变量,只用它来存放arrays好吗?

ASCII表无需记忆,只需要printf(“%d\n”, ‘A’);即可表示A所代表的ASCII数值信息。这同样适用于所有ASCII字符,包括空格、newline以及’\n’。

同时我们也可以利用ASCII这一特性确定字符的类型, 例如if(c>=’0′ && c<=’9′);来确认c是否为一个数字。

二、功能

1、getchar()

getchar这个函数只会读取1个Byte,数据类型为int,如果这个字符不能读取通常情况下会返回“EOF”(EOF = -1),以下是一个使用案例。

#include<stdio.h>

int main(void){
	int i, j;
	printf("Please type the first charactor: ");
	i = getchar();
	getchar();       //用来避免因为使用ENTER导致的错误
	printf("Please type the second charactor: ");
	j = getchar();
	printf("The ASCII code of the charactor you typed are: %d and %d. \n", i, j);
	return 0;
}

2、终结输入

因为 scanf() 以及 getchar() 并没有用来终结输入的方式,在Linux以及MacOS这样的类UNIX操作系统中通常会采用Ctrl+D来结束输入。但是Windows中并没有相似的逻辑,有的程序猿会使用Ctrl+Z来直接结束掉。getchar()函数会返回一个数值来表示输入结束或者没有可以input的部分了。这样的non-ASCII会被表示为“EOF”,由stdio.h库文件定义。