0728知识点

字符和字符串

        字符是构成源程序的基本单位,在程序中,当一个字符被一对单撇号阔起来的话,就被认定为一个字符常量。

        字符串是一对双撇号阔起来的,组成字符串的可以是字母数字以及各种字符。、

        字符串本来就是一个字符数组,只不过多了个\0

字符

printf("%d",str[i]);输出的是字符h , e , l , l, o所对应的ASCII码表的值;又因为定义的数组长度为10,所以后面没有初始化的都以0输出。

printf("%c",str[i]);输出的是字符h e l l o;

getchar();结束标志换行,每次只输出一个字符,带回显

 

getch();不带回显,立刻返回

 getche(); 带回显,立刻返回

        scanf ("%s")输入时,可以一直输入,获取内容,但是碰到回车,空格 ,tab时,虽然还能继续输入,到那时再碰到这些字符时就会不在获取,会内存溢出。

        而scanf ("%5s"),就限制只能获取五个字符

gets会获取所有输入的内容,最后的换行会丢弃

fgets(数组名 ,需要的数量,stdxuin)

puts(),碰到'\0',自动结束并换行

 实例,写一个函数,实现类似fgets()的功能。首先输入需要确定要拿字符的长度,然后输入字符,当输入的字符等于'\n'的时候结束,所以(ch!='\n')作为循环条件,然后fgets()的话,相当于最后一个字符拿了\0,所以显示拿了四个字符。

 字符处理函数

	test_isalnum(); 
	test_isalpha();
	test_islower();
	test_isupper();
	test_isdigit();
	test_isxdigit();
	test_iscntrl();
	test_isgraph();
	test_isspace(); 
	test_isblank();
	test_isprint();
	test_ispunct();
	test_tolower();
	return 0;
}
void test_isalnum(){
	char ch;
	int ret;
	//isalnum
	ret=isalnum('2');		//数字返回4 
	ret=isalnum('k');		//字母返回2 
	ret=isalnum('K');		//大写字母返回1
	ret=isalnum(' ');		//符号返回0 
	ret=isalnum(12);			//符号返回0 
	printf("ret=%d",ret);
}
void test_isalpha(){
	int ret;
	ret = isalpha('a');				//返回2
	ret = isalpha('A');				//返回1
	ret = isalpha('\n');			//返回0
	ret = isalpha(' ');				//返回0
	
	printf("%d",ret);
}
//判断是否为小写字母 
void test_islower(){
	int ret;
	ret = islower('a');				//小写字母返回2
	ret = islower('A');				//大写字母返回0
	ret = islower('\n');			//返回0
	ret = islower(' ');				//返回0
	printf("%d",ret);
}
//判断是否为大写字母 
void test_isupper(){
	int ret;
	ret = isupper('A');				//大写字母返回1
	ret = isupper('a');				//小写字母返回0
	ret = isupper('\n');			//返回0
	ret = isupper(' ');				//返回0
	printf("%d",ret);
}
//判断是否为数字 
void test_isdigit(){
	int ret;
	ret = isdigit('A');				//大写字母返回0
	ret = isdigit('a');				//小写字母返回0
	ret = isdigit('\n');			//返回0
	ret = isdigit(' ');				//返回0
	ret = isdigit('8');				//返回1
	ret = isdigit(49);				//返回1
	printf("%d",ret);
}
//判断是否为16进制 
void test_isxdigit(){
	int ret;
	ret = isxdigit('A');				//大写字母返回128
	ret = isxdigit('a');				//小写字母返回128
	ret = isxdigit('\n');				//返回0
	ret = isxdigit(' ');				//返回0
	ret = isxdigit('8');				//返回128
	ret = isxdigit(0XFD3);				//返回0
	ret = isxdigit(98);					//返回128
	printf("%d",ret);
}
//判断控制字符 
void test_iscntrl(){
	int ret;
	ret = iscntrl('A');				//大写字母返回0
	ret = iscntrl('a');				//小写字母返回0
	ret = iscntrl('\n');			//返回32
	ret = iscntrl(' ');				//返回0
	ret = iscntrl('8');				//返回0
	ret = iscntrl(0XFD3);			//返回0
	ret = iscntrl(98);				//返回0
	ret = iscntrl('\t');			//返回32
	printf("%d",ret);
}
// 判断是否为图形字符 
void test_isgraph(){
	int ret;
	ret = isgraph('A');				//大写字母返回1
	ret = isgraph('a');				//小写字母返回2
	ret = isgraph('\n');			//返回32
	ret = isgraph(' ');				//返回0
	ret = isgraph('8');				//返回4
	ret = isgraph(0XFD3);			//返回0
	ret = isgraph(98);				//返回2
	ret = isgraph('J2[]');			//返回16
	ret = isgraph('Hj8/!');			//返回16
	printf("%d",ret);
}
// 判断是否为空格字符 
void test_isspace(){
	int ret;
	ret = isspace('A');				//大写字母返回0
	ret = isspace('a');				//小写字母返回0
	ret = isspace('\n');			//返回8
	ret = isspace(' ');				//返回8
	ret = isspace('8');				//返回0
	ret = isspace(0XFD3);			//返回0
	ret = isspace(98);				//返回0
	ret = isspace('J2[]');			//返回0
	ret = isspace('Hj8/!');			//返回0
	printf("%d",ret);	
}
//判断是否为空白字符 
void test_isblank(){
	int ret;
	ret = isblank('A');				//大写字母返回0
	ret = isblank('a');				//小写字母返回0
	ret = isblank('\n');			//返回0
	ret = isblank(' ');				//返回1
//	ret = isblank('8');				//返回0
//	ret = isblank(0XFD3);			//返回0
//	ret = isblank(98);				//返回0
//	ret = isblank('J2[]');			//无返回结果 
//	ret = isblank('Hj8/!');			//无返回结果
	printf("%d",ret);	
} 
//判断是否可打印字符 
void test_isprint(){
	int ret;
	ret = isprint('A');				//大写字母返回1
	ret = isprint('a');				//小写字母返回2
	ret = isprint('\n');			//返回0
	ret = isprint(' ');				//返回64
	ret = isprint('8');				//返回4
	ret = isprint(0XFD3);			//返回0
	ret = isprint(98);				//返回2
	ret = isprint('J2[]');			//16
	ret = isprint('Hj8/!');			//16
	printf("%d",ret);	
} 
判断是否为标点 
void test_ispunct(){
	int ret;
	ret = ispunct('A');				//大写字母返回0
	ret = ispunct('a');				//小写字母返回
	ret = ispunct('\n');			//返回0
	ret = ispunct(' ');				//返回0
	ret = ispunct('8');				//返回0
	ret = ispunct(',');				//返回16
	ret = ispunct(98);				//返回0
	ret = ispunct('J2[]');			//16
	ret = ispunct('Hj8/!');			//16
	printf("%d",ret);	
}
//判断是否为标点 
void test_tolower(){
	int ret;
	ret = tolower('A');				//大写字母返回a
	ret = tolower('a');				//小写字母返回a
	ret = tolower('\n');			//返回
	ret = tolower(' ');				//返回32
	ret = tolower('8');				//返回8
	ret = tolower(',');				//返回44
	ret = tolower(98);				//返回0
	ret = tolower('J2[]');			//16
	ret = tolower('Hj8/!');			//16
	printf("%c",ret);	
}

0728作业

1.编写一个函数,需要一个指向字符串的指针变量作为参数,并返回字符串的长度。main函数调用进行测试。

#include <stdio.h>
int main(){
//	char *cha;
	int a;
	int *ch="ashaskfhhgshghgiohurtsioskdg"
	
//	cha = ch;
//	printf("%c",*cha);
	a=test(ch);	
	printf("%d",a);
	return 0;
}
int test(char *p){
	int ret=0;
//	int i;
	while(*p!='\0'){
		p++;
		ret++;
	}
	return ret;
}

2.设计一个函数,其参数为一个字符串指针,并且返回一个指针,该指针指向

字符串中所指位置后(包括该位置)的第一个空格字符,如果找不到空格字符,

就返回空指针

#include <stdio.h>
char test(char *p); 
int main(){
	
	char *ch="asd dfg";
	char *a;
	a=test(ch);
	printf("%c",a);
//	printf("%#p",&a);
	return 0;
}
char test(char *p){
	while(*p!='\0'){
		p++;
		if(*p==' ')
		return p;
	}	//	return ;
//	
//	return ret;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值