模拟实现strncpy ,模拟实现strncat ,模拟实现strncmp
2017-11-22 10:26
381 查看
模拟实现strncpy:
这个函数是将num个字符从源字符串拷贝到目标空间,如果源字符串的长度小于num,则拷贝完字符串后,在目标后面追加0,直到num个。
看代码:
模拟实现strncat:
这个函数主要是在字符串结尾加n个字符。strncat(dest,src)函数中src覆盖原先dest的‘\0’,并添加新的‘\0’,src和dest 的内存区域不能重叠,并且dest要有足够的空间来容纳src。
模拟实现strncmp:
与strcmp不同的是strncmp是指定比较size个字符,当字符串s1,s2相同时返回值是0。这两个函数返回值也不同,后者是在前size字符串相等时返回0,在不相等时返回(str1
-str2
)。
int my_strncmp(const char*str1, const char*str2, int n)
{
assert(str1);
assert(str2);
while (n--)
{
if (*str1 == *str2)
{
str1++;
str2++;
}
else
{
if ((*str1-*str2)<0)
return -1;
else
return 1;
}
}
return 0;
}
这个函数是将num个字符从源字符串拷贝到目标空间,如果源字符串的长度小于num,则拷贝完字符串后,在目标后面追加0,直到num个。
看代码:
char* my_strncpy(char*dest, const char*src, int n) { assert(dest); assert(src); char*p = dest; while (n--) { *p++ = *src++; } *p = 0; return dest; }
模拟实现strncat:
这个函数主要是在字符串结尾加n个字符。strncat(dest,src)函数中src覆盖原先dest的‘\0’,并添加新的‘\0’,src和dest 的内存区域不能重叠,并且dest要有足够的空间来容纳src。
char* my_strncat(char*dest, const char*src, int n) { assert(dest); assert(src); char*p = dest; while (*p) { p++; } while (n--) { *p++ = *src++; } *p = 0; return dest; }
模拟实现strncmp:
与strcmp不同的是strncmp是指定比较size个字符,当字符串s1,s2相同时返回值是0。这两个函数返回值也不同,后者是在前size字符串相等时返回0,在不相等时返回(str1
-str2
)。
int my_strncmp(const char*str1, const char*str2, int n)
{
assert(str1);
assert(str2);
while (n--)
{
if (*str1 == *str2)
{
str1++;
str2++;
}
else
{
if ((*str1-*str2)<0)
return -1;
else
return 1;
}
}
return 0;
}
相关文章推荐
- 模拟实现C库函数:strncpy、strncat和strncmp
- 模拟实现strcpy,strncpy,strcat,strncat,strcmp,strncmp
- [C语言]模拟实现strcpy/strncpy/strcat/strncat/strcmp/strncmp/strstr
- 模拟实现长度受限制的字符串函数(strncpy、strncat、strncmp)
- 模拟实现C库函数strncpy、strncat、strncmp
- 字符串函数模拟实现之strcpy、strncpy、strcmp、strncmp、strcat、strncat
- 模拟实现strcpy,strncpy,strcat,strncat,strcmp,strncmp,memcpy,memmove
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strcpy 模拟实现strncpy 模拟实现strcat 模拟实现strncat 模拟实现strcmp 模拟实现strncmp 模拟实现memcpy 模拟实现memmove
- 模拟实现//strcpy //strncpy //strcat //strncat //strcmp //strncmp //memcpy //memmove
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- 模拟实现strncpy,strncat,strncmp
- 【C语言】 实现strncpy,strncat,strncmp
- 模拟实现stlen,strcmp,strcat, strcpy, strncat, strncpy
- 模拟输出受限制的字符串函数-strncat,strncmp,strncpy
- c语言中部分限制字符函数的实现strncmp,strncat,strncpy,strstr,strrstr
- 【C语言】模拟实现strncpy、strncat、strncmp函数
- strncmp、strncpy、strncat、strlen库函数的实现