字符是以数值存储在电脑里(硬盘内存):这个数值其实就是二进制数,也就是0101
ASCLL码表,将我们需要的字符(包括控制字符等)一一对应一个数值,0-127
void test(void)
{
char ch_1,ch_2,ch_3;
ch_1='0'; //赋值字符‘0’,对应的数值是48
ch_3= 0 ; //赋值数值0,对应数值就是0
ch_2='1'; //赋值字符‘1’,对应的数值是49
}
char类型的字符串
void test_1(void)
{
//数组初始化
int a[5]={1,2,3,4,5};
int i;
//由数组定义,引出字符串概念
char str[10]={'h','e','l','l','o'};//部分元素初始化后,其他元素会以0的形式存在
for(i=0;i<5;i++)
{
printf("str[%d]=%c\n",i,str[i]);
}
//由数组定义,引出字符串概念,在数字后面存放'\0'代表字符串结束
char str_1[10]={'h','e','l','l','o','\0'};
printf("%s",str_1);
}
字符串中对getchar和putchar的应用与注意事项
void test_2(void)
{
//单个字符的获取,输出
char ch;
// ch=getchar(); //getchar()结束标志,换行符 有文件在 <stdio.h>
// putchar(ch);
// ch=getch(); //输入一个字符就结束,不带回显功能 有文件在 <stdio.h>
// putchar(ch);
ch=getche(); //输入一个字符就结束,带回显功能 有文件在 <conio.h>
printf("\n");
putchar(ch);
}
字符串中对 gets()、fgets()、puts()三种输出的用法
void test_3(void)
{
char str_2[100]={0};
char ch=0;
//str_2[100]={"gfgfddfgfd"}; //错误写法
// scanf("%s",str_2); //无限获取缓冲区内容,遇到 '\n'scanf停止退出,
// //中途遇到空格,tab,认为徐娅获取的内结束
// printf("%s",str_2);
//指定拿去内容的多少,可以避免缓冲区去溢出
// scanf("%5s",str_2);
// getchar(); //拿走scanf
// printf("%s",str_2);
// printf("\n");
//会造成缓冲区溢出
// gets(str_2); //无限获取缓冲区内容,遇到 '\n'scanf停止退出,
// printf("%s",str_2);
// ch=getchar(); //getchar会重新拿取内容
// putchar(ch);
// printf("ch=%d",ch);
fgets(str_2,5,stdin); //比较完善的获取字符串
puts(str_2);
//printf("%s",str_2);
//仅用于测试
// int i;
// for(i=0;i<7;i++)
// {
// printf("%d\n",str_2[i]);
// }
}
字符函数的处理(文件 从ctype.h)
判断我们的字符是否是字母
isalnum() 如果是字母或者数字,返回值非0,其他是0
void test_isalnum(void)
{
char ch;
int ret;
// isalnum() 如果是字母或者数字,返回值非0,其他是0
ret = iswalnum('1'); //返回数字4
ret = iswalnum('a'); //数字返回2
ret = iswalnum('@'); //数字返回0
ret = iswalnum(' '); //数字返回0
ret = iswalnum(48); //返回数字4
printf("ret=%d\n",ret);
}
判断我们的字符是否是数字
void test_iswalpha(void)
{
char ch1;
int lpha;
// isalpha() 如果是字母(包括大小写),返回值非0,其他是0
lpha=iswalpha('A'); //返回值是1
lpha=iswalpha('a'); //返回值是2
lpha=iswalpha('0'); //返回值是0
lpha=iswalpha('\0'); //返回值是0
lpha=iswalpha('@'); //返回值是0
printf("lpha=%d\n",lpha);
}
判断小写字母
void test_iswlower(void)
{
char ch2;
int lower;
// isWlower() 如果是小写字母,返回值非0,其他是0
lower=iswlower('a'); //返回值是2
lower=iswlower('A'); //返回值是0
lower=iswlower('0'); //返回值是0
lower=iswlower('\0'); //返回值是0
lower=iswlower(0); //返回值是0
printf("lower=%d\n",lower);
}
判断大写字母
void test_iswupper(void)
{
char ch3;
int upper;
// iswupper() 如果是大写字母,返回值非0,其他是0
upper=iswupper('a'); //返回值是0
upper=iswupper('A'); //返回值是1
upper=iswupper('0'); //返回值是0
upper=iswupper(0); //返回值是0
printf("upper=%d\n",upper);
}
判断数字
void test_iswdigit(void)
{
char ch4;
int digit;
// iswdigit() 如果是数字,返回值非0,其他是0
digit = iswdigit('a'); //返回值是0
digit = iswdigit(0); //返回值是0
digit = iswdigit('0'); //返回值是4
digit = iswdigit('\n'); //返回值是0
digit = iswdigit('1'); //返回值是4
printf("digit=%d",digit);
}
判断是否是16进制数
void test_iswxdigit(void)
{
char ch5;
int xdigit;
xdigit = iswxdigit('0'); //返回值是128
xdigit = iswxdigit('a'); //返回值是128
xdigit = iswxdigit(1); //返回值是0
xdigit = iswxdigit('\n'); //返回值是0
xdigit = iswxdigit('@'); //返回值是0
xdigit = iswxdigit('1'); //返回值是128
xdigit = iswxdigit('A'); //返回值是128
printf("xdigit=%d\n",xdigit);
}