字符函数和字符串函数-----strlen stcpy strcat strcmp memcpy memmove memcmp

1.strlen

 size_t strlen (const char* str);

①.字符串以'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前出现的字符个数(不包含'\0');

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

③.函数的返回值是无符号的(size_t).

2.strcpy

 char* strcpy(char* dest,const char* source);    -------- dest  目标    source  源字符

①.源字符必须以'\0'结束;

②.目标空间必须足够大,以确保能存放源字符串.;

③.会将源字符中的'\0'拷贝到目标函数;

④.目标空间必须可变.

3.strcat

 char* strcat (char* dest,const char* source);

①.源字符必须以'\0'结束;

②.目标空间必须足够大,以能容纳下源字符的内容;

③.目标空间必须可修改.

4.strcmp

 int strcmp (const char* str1,const char* str2);

①.第一个字符串大于第二个字符串,则返回大于0的数字;

②.字符串相等,则返回0;

③.第一个字符串小于第二个字符串,则返回小于0的数字;

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

5.memcpy

void* memcpy (void* dest, const void * source,size_t num);

①.函数memcpy从source的位置开始向后复制num个字节的数据到dest的内存位置;

②.这个函数在遇到'\0'的时候并不会停下来;

③.如果source和dest有任何的重叠,复制的结果都是未定义的.6.

6.memmove

void* memmove(void* dest,const void* source,size_t num);

①.和memcpy的差别就是该函数处理的源内存块和目标内存块是可以重叠的;

②.如果源空间和目标空间出现重叠,就得使用该函数处理.

7.memcmp

int memcmp(const void* ptr1,const void* ptr2,sizt_t num);

①.比较从ptr1和ptr2指针开始的前num个字节(也就是比较前num个字节asc||码值);

②.返回值: 如果ptr1 > ptr2,则返回一个大于0的数;

                如果ptr1 < ptr2,则返回一个小于0的数;

                如果ptr1 = ptr2,则返回0;

发布了42 篇原创文章 · 获赞 0 · 访问量 1440

猜你喜欢

转载自blog.csdn.net/HUAERBUSHI521/article/details/105263528
今日推荐