0729知识.关于函数返回局部变量,和一些ctype函数

#include <stdio.h>

int *test()
{
	int a=10;
	return &a;
}

int main ()

{
	int* p=test();
	printf("%d\n",*p);
	*p=20;
	printf("%d",*p);
	return 0;
 } 

输出结果:

         程序发出警告,(警告:函数返回局部变量.) 但还是运行了,但这个代码是错误的,因为返回的是局部变量,局部变量a会释放内存,此时*p在访问一个已经被释放的空间,所以会警告,这种情况可以声明关键字static声明以下变量a,此时运行就不会报错。

        ctype.h中的一些函数

        Ctype扩展提供了一组函数,这些函数用于验证字符串中的字符是否为正确的类型。Ctype函数作用于两个参数。第一个参数是将要转换的表达式,第二个参数是目标类型或对象类。注意,第一个参数必须是表达式,不能是类型。这些函数有一个共同特点:它们的参数都是 int 类型。

        在习题中用到了ctype.h中的一些函数,例:

#include <stdio.h>
#include <ctype.h>
/*2.编写一个程序,功能是读取输入,直到遇到换行, 并报告单词数,大写字母
数,小写字母数,标点符号数和数字字符数,使用ctype. h系列函数*/
int main()

{
	char a[100];int i; 
	int num,xx,dx,space,bd,others;
	printf("请输入一串字符\n"); 
	gets(a);
	while(a[i]!='\0') 
	{
		if(isupper(a[i]))//大写字母dx 
			dx++;//da xie
		else if(islower(a[i]))//小写字母xx 
			xx++;
		else if(isdigit(a[i]))//数字num //也可以用isalnum 
			num++;
		else if(isspace(a[i]))//空格 
			space++;
		else if(ispunct(a[i]))//标点符号 
			bd++;
		else 
			others++;
		i++;
	}
	printf("大写字母有%d个\n",dx);
	printf("小写字母有%d个\n",xx);
	printf("数字有%d个\n",num-1);//经过测试得减一个 
	printf("空格有%d个\n",space);
	printf("其他字符有%d个\n",others);
	return 0;
 } 

         strlen()函数

        计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。

        C库函数声明

size_t strlen(const char *str)

        参数是要计算长度的字符串,如:

#include <stdio.h>
#include <string.h>

int main ()
{
   char str[10];
   int len;
   gets(str);
   len = strlen(str);
   printf("%s的长度是 %d\n",str,len);
   return(0);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值