字符:
什么是字符:字符就是符号或图案,在计算机中以整数形式存储,当需要显示的时候,再根据ASCII码表中的对应关系显示相应的符号或图案。
'a' 97
'A' 65
'0' 48
提醒:ctype.h头文件中有一些isxxx函数用于判断字符的类型。
字符的输出:
方法1:printf("%c",ch);
方法2:putchar(ch);
字符的输入:
方法1:scanf("%c",&ch);
方法2:ch = getchar();
注意:如果先输入数值数据再输入字符,那么前一次输入数据时会残留一个'\n'或' '影响后续字符数据的输入,
解决方法:
1、调整输入顺序,先输入字符,再输入其它类型的数据。
2、在输入字符前增加一个空白的字符输入语句。
scanf("%*c");
getchar( );
3、在%c的前面加个空格
scanf(" %c",&ch);
串型结构:
由于若干个相同类型的数据组成,末尾有一个明确的结束标志,这种数组被称为串型结构,使用这种数组不需要关心它的长度,使用这种数组作函数的参数时,只需要传递函数名即可。
int arr[] = {0,1,2,3,4,5,6,7,8,-1};
字符串:
什么是字符串:由字符类型组成的串型结构,它的结束标志是'\0',也就是数值0。
char arr[] = {'a','b','c','\0'};
char arr1[6] = {'h','e','l','l','o'};
注意:在定义字符串类型的数组时,要给'\0'预留位置。
字符串的输入:
char str[20];
方法1:scanf("%s",str);
缺点:不能输入带空格的字符串
方法2:gets(str);
缺点:不能限制用户输入的字符个数,有产生段错误的风险,编译器不建议使用,会产生编译警告。
方法3:fgets(str,size,stdin);
缺点1:如果用户输入的字符个数不足size-1个,它会连'\n'一起读取。
str[len-1] = '\0';
缺点2:如果用户输入的字符个数 > size-1个,它只会读取size-1个字符,剩余的字符会残留在输入缓冲区中影响后续数据的输入。
while('\n' != getchar());
scanf("%*[^\n]"); scanf("%*c");
stdin->_IO_read_ptr = stdin->_IO_read_end;
注意: