字符函数和字符串函数(上)

  • 字符分类函数:在C语言中有专门做字符分类的函数,它们都需要包含一个头文件<ctype.h>那么,接下来我们就看一看,有哪些做字符串的函数吧。

  • 这些就是做字符串的函数,其它的都非常相似,我们举一个,来练练手,以islower举例,它所做的作用就是:能够判断参数部分的字符是否是小写字母的,它的写法是:

                              int  islower ( int c );c代表字符。

  • 练习一下:写⼀个代码,将字符串中的⼩写字⺟转⼤写,其他字符不变,则代码为:
#include<stdio.h>
#include<ctype.h>
int main()
{
	int i = 0;
	char arr[] = { "I am a college Student" };
	char c;
	while (arr[i])
	{
		c = arr[i];
		if (islower(c))
			c -= 32;
			putchar(c);
			i++;	
	}
	return 0;
}
  • 讲完字符分类函数,就来讲一讲字符转换函数,有两个:
  1. int tolower (int c);//将参数传进去的大写字母转小写。
  2. int toupper(int c);//将参数传进去的小写字母转大写。
  • 练习题目:使用tolower,将字符串中的⼩写字⺟转⼤写,其他字符不变。则代码为:
#includde<stdio.h>
#include<ctype.h>

int main()
{
	char arr[] = { "I am a Student" };
	int i = 0;
	while (arr[i] !='\0')
	{
		if (islower(arr[i]))
		{
			arr[i] = tolower(arr[i]);
		}
		i++;
	}
	printf("%s\n", arr);
	return 0;
}
  • strlen的使用,和如何模拟strlen:它所对应的头文件是<string.h>,它所代表的意思是:字符串的长度。模拟实现可以有三个方面的模拟实现,1.计数器的而方式。2.指针-指针的方式。3.递归的方式。三个模拟实现strlen的方式。
  • 首先,先看一下strlen这个的使用,例子:比较str1和str2的大小,则代码为;
int main()
{
	const char str1 = "abcde";
	const char str2 = "qwer";
	if (strlen(str2) - strlen(str1)> 0)
		//比较,因为strlen的返回值是size_t是一个无符号的整形
		//无论最终的结果是正数还是负数,其值的是一个没有符号的整数。
	{
		printf("str2>str1\n");
	}
	else 
	{
		printf("str1>str2\n");
	}
	return 0;
}

  • 模拟实现strlen的实现:1.计数器的而方式:则代码为:
#include<assert.h>
size_t mr_strlen(char* z)
{
	assert(z);//断言一下,防止z为NULL
	int count = 0;//计数器
	while (*z != '\0')
	{
		count++;
		z++;
	}
	return count;
}
int main()
{
	char arr[] = "abcdef";
	size_t yu = mr_strlen(arr);//创造出一个关于mr_strlen的函数
	printf("%zd\n", yu);
	return 0;
}


  • 2.指针-指针的方式则代码为:
#include<assert.h>
size_t  my_strlen(char* s)
{
	assert(s);
	char* p = s;
	while (*p != '\0')
		p++;
	return p - s;
}
int main()
{
	char arr[] = "abcdef";
	size_t yu = my_strlen(arr);//创造出一个关于mr_strlen的函数
	printf("%zd\n", yu);
	return 0;
}
  • 3.递归的方式。的代码为:
size_t mr_strlen(const char* c)
{
	if (*c == '\0')
		return 0;
	else
		return 1 + mr_strlen(c + 1);

}
int main()
{
	char arr[] = "abcdef";
	size_t yu = mr_strlen(arr);//创造出一个关于mr_strlen的函数
	printf("%zd\n", yu);
	return 0;
}

三种方式都能模拟实现strlen的实现,每一个都特别的重要。你学会了吗?

  • 15
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值