字符函数和字符串函数(1)<C语言>

前言

        在C语言编写程序时,常常需要完成对字符和字符串的处理,为了快捷、方便处理字符和字符串,C语言内置了一些字符函数和字符串函数,所以下文将要介绍一些字符和字符串函数,如:头文件<ctype.h>包含的一些字符分类函数:islower()、isdigit()、isupper()、isalpha()等,头文件<string.h>包含的strlen()、strcpy()、strcat()、strcmp()、strncpy()、strncat()、strncmp()等。


目录

前言

头文件

 头文件

strlen()函数

        函数参数及其返回类型:

作用:

注意点:

模拟实现:

strcpy()函数

         函数参数及其返回类型:

作用:

注意点:

模拟实现:

 strcat()函数

         函数参数及其返回类型:

作用:

注意点:

模拟实现:

  strcmp()函数

         函数参数及其返回类型:

作用:

注意点:

模拟实现:


头文件<ctype.h>

        <ctype.h>下的所有函数传入参数和返回类型一般都是一样的,例如islower()函数。

int islower(int c)

字符分类函数的传入参数是一个字符或它的Ascii码值,返回值是一个零表示假,非零表示真。

常见的字符分类函数:

islower()——判断是否为小写字母

isupper()——判断是否为大写字母

isdigit()——判断是否为‘0’到‘9’的数字字符

isalpha()——判断是否为字母(包括大小写)

例如,使用islower()函数判断是否为小写,完成大小写转换:

//大写转小写lower函数
#include<ctype.h>//包含头文件<ctype.h>
#include<stdio.h>
int main() {
	char arr[20] = "hello world!";
	int i = 0;
	while (arr[i]) {
		if (islower(arr[i])) {//使用islower()函数完成判断
			arr[i] -= 32;//小写字母Ascii值-32得到大写字母
		}
		i++;
	}
	printf("%s", arr);
	return 0;
}

运行结果:

 

 在<ctype.h>头文件下还有两个特殊的函数:

int tolower(int c)//大写转小写
int toupper(int c)//小写转大写

使用这两个函数可直接完成对字符的大小写转换,它的返回值是转换后字母的Ascii码值,可以用字符类型接收。

示例:


 头文件<string.h>

        头文件<string.h>下包含的是一些对字符串进行处理的函数,下面将一一介绍。

strlen()函数
        函数参数及其返回类型:
size_t strlen(const char*str)
作用:

统计某个字符串\0前的字符个数。

注意点:

①strlen()函数只统计\0前的字符个数

②参数指向的字符串必须以\0结束

③strlen()返回值是size_t类型的,值得注意的是,当两个无符号整数进行运算时得到了一个负数,在无符号整数里是没有负数的,所以这个负数会被当成一个非常巨大的数。

模拟实现:

strlen()函数的模拟主要有三种:

①计数器:

②指针-指针

③递归:

strcpy()函数
         函数参数及其返回类型:
char* strcpy(char* destination ,const char* source);
作用:

拷贝源字符串到目的空间(包括\0

注意点:

①源字符一定要有\0,没有\0无法结束

②会拷贝\0到目的空间

③目标空间足够大能够放下源字符串

④目标空间必须可修改(如常量字符串不能被修改)

模拟实现:

 strcat()函数
         函数参数及其返回类型:
char* strcpy(char* destination ,const char* source);
作用:

追加字符,源字符串第一个字符替代目的字符串的\0

注意点:

①源字符串和目的字符串一定要有\0

②目的字符串也必须有\0,用来确认从哪里追加

③目标空间足够大能够放下源字符

④目标空间必须可修改(如常量字符串不能被修改)

⑤strcat()函数不能保证自己给自己追加。(原因:strcat()函数会使源字符串的第一个字符替代目的字符的\0,而源和目的皆为同一个字符串,所以源的\0也没有了,造成死循环)

模拟实现:

  strcmp()函数
         函数参数及其返回类型:
int strcpy(const char* str1 ,const char* str2);
作用:

按照Ascii码值比较对应字符返回值(大于:大于0的数,等于:等于0,小于:小于0)

注意点:

①从第一对字符开始比,对应字符Ascii码值一样,比较下一对

②对应字符不一样比较Ascii码值

③对应字符完全一样,但是长度不一样,长度长的的大(如:abc和abcd,abcd大)

模拟实现:

 Respect!

  • 124
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 60
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值