建设网站难吗,影楼微网站建设,服装店网站建设思路,建一个门户网站要多少钱超详细讲解长度受限制的字符串函数#xff08;保姆级教程#xff01;#xff01;#xff01;#xff09;长度受限制的字符串函数strncpy函数strncpy函数的使用strncpy函数的模拟实现strncat函数strncat函数的使用strncat函数的模拟实现strncmp函数strncmp函数的使用strncm…
超详细讲解长度受限制的字符串函数保姆级教程长度受限制的字符串函数strncpy函数strncpy函数的使用strncpy函数的模拟实现strncat函数strncat函数的使用strncat函数的模拟实现strncmp函数strncmp函数的使用strncmp函数的模拟实现长度受限制的字符串函数
strncpy函数 strncpy函数是把 src 所指向的字符串复制到 dest最多复制 num 个字符。当 src 的长度小于 num 时dest 的剩余部分将用空字节\0填充。 dest – 指向用于存储复制内容的目标数组。 src – 要复制的字符串。 num – 要从源中复制的字符数。
strncpy函数的使用
下面展示strncpy函数的使用
#include stdio.h
#include string.hint main()
{char src[40];char dest[12];memset(dest, \0, sizeof(dest));strcpy(src, This is runoob.com);strncpy(dest, src, 10);printf(最终的目标字符串 %s\n, dest);return(0);
}编译并运行上面的程序将产生以下结果 最终的目标字符串 This is ru strncpy函数具有以下的特点 1、拷贝num个字符从源字符串到目标空间。 2、如果源字符串的长度小于num则拷贝完源字符串之后在目标的后边追加0直到num个。 strncpy函数的模拟实现
char* my_strncpy(char* dest, const char* src, int num)
{char* tmp dest;while (num (*dest *src)){num--;}if (num){while (num--){*dest \0;}}return tmp;
}strncat函数 strncat函数把 src 所指向的字符串追加到 dest 所指向的字符串的结尾直到 num 字符长度为止。 dest – 指向目标数组该数组包含了一个 C 字符串且足够容纳追加后的字符串包括额外的空字符。 src – 要追加的字符串。 num – 要追加的最大字符数
strncat函数的使用
下面的实例演示了 strncat函数的用法
#include stdio.h
#include string.hint main ()
{char src[50], dest[50];strcpy(src, This is source);strcpy(dest, This is destination);strncat(dest, src, 15);printf(最终的目标字符串 |%s|, dest)return(0);
}让我们运行上面的程序将产生以下结果 最终的目标字符串 |This is destinationThis is source| strncat函数具有以下的特点 1、dest要有足够的空间。 2、strncat会将dest字符串最后的’\0’覆盖掉字符追加完成后再追加’\0’。 3、如果num大于字符串src的长度那么仅将src全部追加到dest的尾部如果num小于字符串src的长度该字符会将src的所有字符附加在dest末尾。无论哪种情况都会在新字符串的末尾添加空字符。 strncat函数的模拟实现
void my_strncat(char* dest, const char* src, int num)
{char* tmp dest;char* tmq (char*)src;assert(dest);assert(src);while (*tmp){tmp;}while (num--){*tmp *tmq;tmp;tmq;}*tmp \0;printf(%s, dest);printf(\n);
}strncmp函数 strncmp函数把 str1 和 str2 进行比较最多比较前 num 个字节。 str1 – 要进行比较的第一个字符串。 str2 – 要进行比较的第二个字符串。 num – 要比较的最大字符数。 strncmp函数的返回值如下图所示 即该函数返回值如下 如果返回值 0则表示 str1 小于 str2。 如果返回值 0则表示 str1 大于 str2。 如果返回值 0则表示 str1 等于 str2。 strncmp函数的使用
下面是此函数的strncmp函数的使用例子
#include stdio.h
#include string.hint main ()
{char str1[15];char str2[15];int ret;strcpy(str1, abcdef);strcpy(str2, ABCDEF);ret strncmp(str1, str2, 4);if(ret 0){printf(str1 小于 str2);}else if(ret 0){printf(str2 小于 str1);}else{printf(str1 等于 str2);}return(0);
}让我们编译并运行上面的程序这将产生以下结果 str2 小于 str1 需要注意的是字符串大小的比较本质上是根据每个字符的Asall表值大小进行比较得到的从字符串的第一个字母进行比较如果相等就依次往后继续比较直至比较出结果或者遇到\0为止当然strncmp函数还有一个限制的要求是比较num个字节当比较的字节数减为0时也会停止。
strncmp函数的模拟实现
int my_strncmp(const char* str1, const char* str2, int maxlen)
{assert(str1 ! NULL);assert(str2 ! NULL);int ret 0;while (!(ret (*str1 - *str2)) *str1 (maxlen--)){str1;str2;}if (ret 0)ret -1;else if (ret 0)ret 1;return ret;
}那么今天的长度受限制的字符串函数的相关内容我就讲述完啦因为个人能力有限文章难免会出现纰漏届时有错误可以私信发给我以及时更正谢谢大家