内存函数,字符串函数大全(函数表)

1.字符函数

1.1字符分类函数

判断字符是什么类型的函数,如果满足判断条件,则返回一个大于0的整数,否则返回0;

例如islower函数(判断字符是否为'a'~'z'的小写字母)

字符函数汇总

iscntrl任何控制字符

isspace

空白字符,包括空格'  ',换页'\f',换行'\n',回车'\r',水平/垂直制表符'\t','\v',退格'\b'等。
isdigit十进制数组0~9
isxdigit十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F
islower小写字母及其assic码
isupper大写字母及其assic码
isalpha字母a~z,A~Z
isalnum字母及其assic或者数字,a~z,A~Z,0~9(12就不行)
ispunct标点符号,不属于数字或字母的图形字符(可打印)
isgraph图形字符
isprint可打印字符,包括推行字符和空白字符

将字符串中的小写字母转换为大写字母

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>


void kangwerte(char* a)
{
    assert(a);
	while (*a)
	{
		if (islower(*a) > 0) //判断*a是否为小写字母
		{
			*a -= 32;
		}
		a++;
	}
}
int main()
{
	char m[] = "abCdEF";
	kangwerte(m);
	printf("%s\n", m);   //ABCDEF
	return 0;
}

1.2字符转换函数

tolower将大写字母转换为小写字母,如果无法转换,则返回值为转换前的值
toupper将小写字母转换为大写字母,如果无法转换,则返回值为转换前的值

小写字母转换为大写字母只要将上面的*a-=32替换成*a=toupper(*a)

2.内存函数&&字符串函数

复制类

void * memcpy

( void * destination, const void * source, size_t num )

复制内存块

从source复制n个字节到destination

无法重叠移动

void * memmove

( void * destination, const void * source, size_t num )

移动内存块

从source复制n个字节到destination

可以重叠移动

char * strcpy

( char * destination, const char * source )

复制source中的内容到destination中

char * strncpy

( char * destination, const char * source, size_t num )

复制num个source中的字符到destination中
追加类

char * strcat

( char * destination, const char * source )

在destination后追加source字符串

char * strncat

( char * destination, const char * source, size_t num )

在destination后追加num个source中的字符串
比较类

int memcmp

( const void * ptr1, const void * ptr2, size_t num )

比较两块内存中的n个字节的字符串

int strcmp

( const char * str1, const char * str2 )

比较两个字符串大小

int strcoll

( const char * str1, const char * str2 )

比较两个字符串大小

strcoll与strcmp的区别:strcoll函数使用本地化的排序规则进行比较,可处理不同语言之间的字符排序问题

int strncmp

( const char * str1, const char * str2, size_t num )

比较两个字符串前n个字节的大小

size_t strxfrm

( char * destination, const char * source, size_t num )

复制字符串,与strcpy相同,但strxfrm函数使用本地化的排序规则进行比较,可处理不同语言之间的字符排序问题
搜索类

const void * memchr

( const void * ptr, int value, size_t num )
void * memchr

( void * ptr, int value, size_t num )

在ptr往后num个字节范围内找第一次出现value的地方,如果找到了,返回这个地方的地址,如果找不到,返回NULL

const char * strchr

( const char * str, int character )
char * strchr

( char * str, int character )

在str串中找第一次出现character的地方,如果找到了,返回这个地方的地址,如果找不到,返回NULL

size_t strcspn

( const char * str1, const char * str2 )

在str1起始地址开始找str2中的字符,如果在某个地方找到了str2中的字符,那么就返回这个被找到字符的地址与str1起始地址相减的值,即字节数

const char * strpbrk

( const char * str1, const char * str2 );
char * strpbrk

( char * str1, const char * str2 )

在str1起始地址开始找str2中的字符,如果在某个地方找到了str2中的字符,那么就返回这个被找到字符的地址

const char * strrchr

( const char * str, int character )
char * strrchr

( char * str, int character )

在str1起始地址开始找str2中的字符最后出现的为止,返回这个被找到字符的地址

size_t strspn

( const char * str1, const char * str2 )

在str1起始地址开始找str2中的字符,如果连续n个字符都包含str2中的字符,那么就返回n

const char * strstr

( const char * str1, const char * str2 )
char * strstr

( char * str1, const char * str2 )

在str1中找str2第一次出现的位置,返回第一次出现的地址

char * strtok

( char * str, const char * delimiters )

依次用delimiters字符串中的字符在str串中出现的这个字符的位置分割(用\0代替str中的这个字符)函数具有记忆功能,可以多次分割

其他类

void * memset

( void * ptr, int value, size_t num )

        

内存设置

将ptr地址往后num个字节赋值为为value

char * strerror ( int errnum )

错误信息,可以传整数,以%s来查看对应的错误信息
strlen求字符串长度

  • 47
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值