常见字符函数和字符串函数

字符函数:

字符分类函数:

//头文件 -- ctype.h

字符分类函数用于判断字符类型:有如下函数:

//isdigit:判断数字0-9,如果是数字则返回非0的值,否则返回0;


//isxdigit:判断十六进制数字,包括所有的十进制数字,小写字母,大写字母

如果是则返回非0的值,否则返回0

//islower:判断小写字母a-z,如果是小写字母则返回非0的值,否则返回0


//isupper:判断大写字母A-Z,如果是大写字母则返回非0的值,否则返回0


//isalpha:判断字母A-Z和a-z,如果是字母则返回非0的值,否则返回0


//isalnum:判断字母或者数字0-9,A-Z和a-z,如果是字母或者数字,则返回非0的值,否则返回0

//isgraph:任何图形字符


//isprint:任何可打印字符,包括图形字符和空白字符

练习:将字符串的小写字母转为大写

首先遍历字符串,然后通过islower函数判断某个字符是否是小写字母,最后将所选出的小写字母转换成大写字母(通过ASCII码表来转换)

#include<stdio.h>
#include<string.h>
#include<ctype.h>//分类函数头文件
int main()
{
	char str[] = "i am A man";

	size_t len = strlen(str);//strlen返回值是size_t类型

	for (size_t i = 0; i < len; i++)
	{
		if (islower(str[i]))
		{
			str[i] = str[i] - 32;
		}
	}
	printf("%s", str);// I AM A MAN
	return 0;
}

字符转换函数:

//头文件 -- ctype.h

// int tolower(int c);  ---  大写转小写


// int toupper(int c);  ---  小写转大写

实例:
#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main()
{
	char ch[20];
	gets(ch);
	//ch=tolower(ch); //大写转小写
	for (int i = 0; i < 20; i++)
	{
		ch[i] = tolower(ch[i]);
	}
	printf("%s", ch);
	return 0;
}

字符串函数:

常见字符串函数:strlen,strcpy,strcmp,strcat-----头文件string.h

strlen函数:

计算字符串长度函数,遇到 '\0' 则停止,不计入 '\0'.

strcpy函数:

拷贝字符串(包含\0) ,会在末尾自动追加'\0'

//注意事项: 1.拷贝源中必须有 \0 ,并且 \0 也会被拷贝
//          2.目的地的空间必须比拷贝源大
//          3.保证目标空间可以修改

实例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>

int main()
{
	char arr1[] = "hello CSDN";
	char arr2[] = "XXXXXXXXXXXXX";
	strcpy(arr2, arr1);
	printf("%s", arr2);//hello bit (包括\0)

	return 0;
}

strcmp函数:

//strcmp函数:比较两个字符串大小字符串
//比较两个字符串对应位置上的字符(按照字典序比较)


//第一个字符串 > 第二个字符串,返回 大于0 的数字
//第一个字符串 = 第二个字符串,返回 0
//第一个字符串 < 第二个字符串,返回 小于0 的数字

实例:
#include<stdio.h>
#include<string.h>

int main()
{
	printf("%d\n", strcmp("abcdef", "abq"));//-1
	return 0;
}

strcat函数:

//strcat函数:字符串追加(但不能追加本身)
//会在末尾自动追加'\0'

注意事项:

//          1.目的地中必须有 \0 ,从 \0 开始追加
//          2.追加源中必须有 \0 ,在 \0 停止追加
//          3.保证目标空间足够大,并且目标空间可以被修改
//          4.要追加的 字符串不应与目标字符串重叠(否则目标地的\0 会被覆盖)

实例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>

int main()
{
	char arr[30] = "hello";//防止溢出
	char* p = "CSDN";
	strcat(arr, p);
	printf("%s", arr);//helloCSDN
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值