当前位置: 首页 > news >正文

北京建设工程交易服务中心网站网站开发html php

北京建设工程交易服务中心网站,网站开发html php,凉山州住房和城乡建设局门户网站,苍山做网站strncmp strncat strncpy长度受限制的字符串函数 首先 我们需要知道 这几个的语法格式差不多 这里传递的size_t的长度是传递的字节长度 不是个数 也就这里int*是四个字节 char*是一个字节 如果是整数进行交换 。此时也就需要20个字节,这样可以交换五个整数 这里差…

strncmp strncat strncpy长度受限制的字符串函数

首先 我们需要知道 这几个的语法格式差不多 

这里传递的size_t的长度是传递的字节长度 不是个数 也就这里int*是四个字节 char*是一个字节 如果是整数进行交换 。此时也就需要20个字节,这样可以交换五个整数

这里差异只是多一个参数 也就是size_t sz长度参数

strncpy(拷贝)

这里只是多一个字节长度

这里拷贝三个

这里是让拷贝几个就拷贝几个 没有’\0‘

这里拷贝8个 这里是不足八个 加上'\0'

strncpy代码的模拟实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>
void my_strncpy(char* str1, char* str2, size_t sz)
{assert(str1 && str2);while (sz > 0)//这里是字节交换 每次sz会进行减少一个字节{*str1 = *str2;//这里进行复制str1++; //各自向后移动str2++;sz--;//字节每次减少1 }
}
int main()
{char arr1[] = "dfhguil";char arr2[100] = { 0 };my_strncpy(arr2, arr1, 3);printf("%s", arr2);return 0;
}

strncat(拼接)

举例1

这里是追加三个字节

举例2

这里是追加3个 从前往后走进行追加 把该追加的追加之后 会放一个字符串

举例3

把该追加的追加之后 加上字符串0 之后就不继续添加了

strncat的模拟实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>
void my_strncat(char* str1, char* str2, size_t sz)
{assert(str1 && str2);//这里使用一个断言 也就是只要不是空指针 就可以继续运行while (*str1 != '\0')//这里是先找到第一个数组的'\0'然后跳出循环str1++;while (sz != 0)//其次和之前的循环方式一样 每次减少一个字节 ++ 把数值赋给arr1 但是这里需要知道 这里是常量字符串 所以需要arr1 的空间大于arr2{*str1 = *str2;str1++;str2++;sz--;}*str1 = '\0';//最后是把'\0'放到字符串的结尾
}
int main()
{char arr1[100] = "hello ";char arr2[] = "bitttt";my_strncat(arr1, arr2, 3);printf("%s", arr1);return 0;
}

strncmp(比较)

这里是比较前两个字节  

在给定 的长度范围内进行比较

这里你让我拷贝 我就进行拷贝 存在越界访问的情况

这里拷贝出来 但是程序崩溃了

strncmp的模拟实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>
char* my_strcmp(char* str1, char* str2, size_t sz)
{assert(str1 && str2);while (*str1 == *str2)//这里代码循环的条件就是只要相等就继续++ 然后遇见最后一个字符'\0'自然会跳出循环{if (sz == 0)//这里每次循环的时候会进行sz的-- 也就是对照字符的-- 如果不满足相等的条件 此时也就会跳出循环{return 0;}str1++; str2++;sz--;}return *str1 - *str2;//while (*str1 == *str2 && sz > 0)//{//	str1++; //	str2++;//	sz--;//}//return sz == 0 ? 0:(*str1 - *str2);//这里是使用一个三目操作符 如果满足sz循环 也就是返回0  不然就是返回差值 这样也是允许的}int main()
{char arr1[100] = "hello ";char arr2[] = "bitttt";int ret = my_strcmp(arr1, arr2, 3);printf("%d", ret);return 0;
}

 

代码使用的总结

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>
int main()
{//拼接限制函数的使用  这里拼接三个char arr1[100] = "slaidg ";char arr2[] = "dfilsug ";strncat(arr1, arr2, 3);printf("%s\n\n", arr1);//拷贝限制函数的使用 这里拷贝五个char arr3[] = "slaidg ";char arr4[100] = { 0 };strncat(arr4, arr3, 5);printf("%s\n\n", arr4);//比较函数的使用char arr5[] = "slaidg ";char arr6[] = "dfilsug ";char arr7[] = "slaidg ";int ret1 = strcmp(arr5, arr6, 3);//不相同 1   前三位比较的时候上面的大 arr5大int ret2 = strcmp(arr5, arr7, 3);//相同   0   前三位一样大printf("%d\n%d\n", ret1, ret2);
}

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

http://www.yayakq.cn/news/940379/

相关文章:

  • 织梦网站做seo优化项目计划书怎么做
  • 佛山h5网站公司网站设计论文的参考文献
  • 高端网站设计制作安徽海外网络推广
  • 怎么把网站整站下载做网站必须要注册公司么
  • 局域网内建设网站微信运营网站建设
  • 上海网站营销怎么样wordpress网址采集
  • 一般自己怎么做网站如何免费开自己的网站
  • php就是做网站吗杭州做家教网站
  • 微信公众号免费制作成微网站河北建设厅网站登陆怎么找附件
  • 2008系统怎么做网站网站建设的7种流程图
  • 做网站还要写文章吗网页制作dw怎么制作特效
  • 果洛营销网站建设服务盈润企业网站管理系统
  • 机械加工网站哪里找网站程序是什么意思
  • 企业网站模版排版设计作品欣赏
  • 网站建设所需要的技能贵州网站建设公司推荐
  • 建设网站所有步骤WordPress动态背景图
  • 快递网站怎么制作汕头网站优化系统
  • 响应式网站开发视频怎么做网站收广告费
  • 福州建网站最新重大新闻
  • 郑州网站建设排名上海网站制作官网
  • 创业如何进行网站建设呼和浩特网站设计公司
  • 使用云主机做网站教程广17网站一起做网店
  • vue可以做pc网站吗百度人工服务电话
  • 微信怎么做一些微网站wordpress自主注册
  • asp.net 3.5网站开发全程解析 深圳网站建设公司排名
  • 做网站属于软件开发吗广州软件开发公司排行
  • 代理龙华网站建设模板建站代理
  • 全国互联网公司排名网站seo入门基础教程书籍
  • 织梦cms网站模板修改影视公司需要的许可证
  • 建设银行网站源码网站推广优势