C和指针之字符串之strncpy、strncat、strncmp
来源:互联网 发布:数据机房图片 编辑:程序博客网 时间:2024/06/05 10:20
1、strncpy、strncat、strncmp
1)、函数原型char *strncpy(char *dest,char *src,size_t n);
复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_t n的值决定。如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。如果n<src的长度,只是将src的前n个字符复制到dest的前n个字符,不自动添加'\0',也就是结果dest不包括'\0',需要再手动添加一个'\0'。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节
2)、函数原型char *strncat(char *dest,char *src,size_t n);
把src包含n个字符追加到dest后面,需要保证dest空间足够,如果n大于src长度,只追加src长度
3)、函数原型char *strncmp(char *dest,char *src,size_t n);
比较前n个字符
2、运行Demo
#include <stdio.h>#include <string.h>char *str_ncpy(char *des, const char* src, int len){ //这里需要注意如果strlen(str)大于等于len,只有len个字符复制到了 //des,末尾没有加上'\0',如果len大于src的长度,就会加上'\0',前提 //是在des里面能存储下,所以我们一般这样写,len是des的大小,然后 //写完之后需要des[len - ] = '\0' char *result = strncpy(des, src, len); des[len - 1] = '\0'; return result;}char *str_ncat(char *des, const char* src, int len){ //dest要有足够的空间来容纳要拷贝的字符串 //strncat()会将dest字符串最后的'\0'覆盖掉,字符追加完成后,再追加'\0' //如果len长度大于src,只把src长度追加到des后面 char *result = strncat(des, src, len); return result;}void str_ncmp(char const *s1, char const *s2, int len){ int result = strncmp(s1, s2, len); if (result == 0) { printf("result == 0\n"); } else if (result > 0) { printf("result > 0\n"); } else { printf("result < 0\n"); }}int main(){ char name[] = "chengongyu", des[20] = "122"; str_ncpy(des, name, sizeof(des)); printf("des is %s \n", des); const char* src = "chen"; str_ncat(des, src, sizeof(des)); printf("des is %s\n", des); str_ncmp(name, des, 10); return 0;}
3、结果展示
1111deMacBook-Pro:dabian a1111$ vim string_demo1.c1111deMacBook-Pro:dabian a1111$ gcc -g string_demo1.c -o demo11111deMacBook-Pro:dabian a1111$ ./demo1des is chengongyu des is chengongyuchenresult == 01111deMacBook
阅读全文
0 0
- C和指针之字符串之strncpy、strncat、strncmp
- c标准库源代码之 strncpy/strncat/strncmp
- 《c程序设计语言》读书笔记-5.5-指针实现strncpy,strncat,strncmp
- 字符串函数模拟实现之strcpy、strncpy、strcmp、strncmp、strcat、strncat
- 模拟实现C库函数:strncpy、strncat和strncmp
- 用指针实现库函数strncpy strncmp strncat
- 【C语言】 实现strncpy,strncat,strncmp
- 模拟实现C库函数strncpy、strncat、strncmp
- 模拟输出受限制的字符串函数-strncat,strncmp,strncpy
- C中的strcpy()、strcat()、strcmp()、strncpy()、strncat()、strncmp()
- 模拟实现C语言strncpy.strncat.strncmp函数
- 【C语言】模拟实现strncpy、strncat、strncmp函数
- 【C语言】模拟实现strncpy strncat strncmp strchr strrchr函数
- C语言~模拟实现strncpy、strncat、strncmp函数
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- 模拟实现strncpy,strncat,strncmp
- 动态规划——求数字三角形最优解和最优路径
- CNN卷积神经网络新想法
- 大数乘法(模板)
- 封装高可复用的服务端响应对象和登录demo
- HDU 3763 CD(二分查找)
- C和指针之字符串之strncpy、strncat、strncmp
- 双边滤波和冲击滤波
- 特殊整数
- 自编码网络与时间信号分解
- anaconda,tensorflow安装
- servlet--cookie setMaxAge属性
- Spring-Mvc运行流程及组件详解
- myeclipse jvm简单内存配置
- 无标题