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

找个做网站的 优帮云西宁做网站君博相约

找个做网站的 优帮云,西宁做网站君博相约,ppt模板免费模板,微信红包网站制作目录 函数strcat 注意 那么们要怎么防止这种越界的情况呢? 函数strncat 注意 函数strcpy 和 函数strncpy 注意 函数strcat 功能:将两个字符串拼接起来,strcat(char *dest,const char *str)头文件&…

目录

函数strcat

注意

那么们要怎么防止这种越界的情况呢?

函数strncat

注意

函数strcpy 和 函数strncpy

注意


函数strcat

  1. 功能:将两个字符串拼接起来,strcat(char *dest,const char *str)
  2. 头文件:#include
  3. 返回值:返回一个拼接好字符串的指针 -----等价于dest 数组名代表首元素地址 也可以另外顶一个指针去接收
dest:指向的目标内存,拼接好的字符串最后存储的地方
str:需要拼接的字符串,在dest后面拼接上去
strcat(数组名,字符串)

注意

  • strcat函数是不限制拼接字符的大小,所以可能会出现超过最大范围的情况

那么们要怎么防止这种越界的情况呢?

        strcat函数没法系统自动的帮我计算越界情况,只能人工的去计算,还有一种更加安全且不会越界的函数

函数strncat

  1. 功能:将两个字符串凭借起来
  2. strncat(char *dest,const char *str,n)
  3. strncat(char dest[],const *str .n)
  4. 头文件#include
  5. 返回值:返回拼接好字符串的指针,等价于数组名dest
dest:指向目标的内存,最终存储拼好的字符串
str:需要拼接的字符串
n:可以拼接最多str字符串中多少个字符进去目标内存 通常是 sizeof(dest)-strlen(str)-1
sizeof(dest)-strlen(str)-1   这里的-1是为了给结束标识\0留一个位置
strncat(数组名,字符串,需要拼接的个数)

注意

strncat函数最多可以拼接n+1个字符,+1是为其留下结束标志\0;n是str中代表多少个字符进去拼接。

代码运用:

#include <stdio.h>
#include <string.h>
int main()
{char s[15] = "abc";char x[15] = "abc";// strcat(s,"ooopppqqq");  //会返回一个指针 我们可以用一个char指针来存 也可以不用char *p = strcat(s, "ooopppqqq");printf("%s\n", s);printf("%s\n", p);char *q = strncat(x, "asaadfffadfghjklqerer",sizeof(x)-strlen(x)-1);printf("%s\n",q);printf("%s\n",x);return 0;
}

函数strcpy 和 函数strncpy

  1. 功能:都是将一个字符串拷贝到一个数组中
  2. 函数strncpy相比于strcpy更加的安全。 推荐使用strncpy
  3. 头文件 #include
  4. strcpy(char *dest,char *str) <==> strcpy(char dest[],char *str) <==> strcpy(数组名,字符串)
  5. strncpy(char *dest,char *str,n) <==> strncpy(char dest[],char *str,n) <==> strcpy(数组名,字符串,复制的个数)
  6. dest是数组名,首元素的地址
  7. str一个指针字符串的指针,代表字符串的地址

注意

  • strcpy和strncpy两个函数都会把原先的数组里面的元素覆盖掉
  • strncpy()可以复制n+1个字符到数组dest中,最后一个字符是结束符\0,如果字符串最后没有结束标志\0,那么就不是一个合法的字符串,可能让程序报错。

代码运用:

#include <stdio.h>
#include <string.h>
int main()
{char s[6] = "abc";char x[6] = "def";char ss[] = "hello";char *p = strcpy(s, ss);printf("%s\n", s); // 会把abc覆盖掉printf("%s\n", p);strncpy(x, ss, sizeof(x) - 1);printf("%s\n", x);//会把def覆盖掉 return 0;
}

总结:strncpy函数中-1是为了让最后一位是结束标识符,让其是一个合法的字符串 strncpy最多可以放n+1个字符,n是实际复制过去的字符个数 +1是给结束标识留一个位置 例如 strncpy(x,ss,5); x是有六个位置的,我们要留一个位置出来 所以strncp最多可复制5+1个

http://www.dtcms.com/wzjs/810162.html

相关文章:

  • 网站正在建设维护中页面深圳网站设计g
  • 做阿里巴巴的网站的费用吗国内免费代理ip地址和端口
  • 网站建设公司广做视频网站的服务器
  • 酷站欣赏什么是软文推广
  • 自己建的网站搜不到WordPress不会php
  • 商业网站建设规划范文北京学生聚集
  • 中国风网站模板一个公司多个网站做优化
  • 做网站的好公司青岛网站建设设计
  • 织梦cms可以做外贸网站吗网站群管理平台方案
  • 做网站网上商城多少钱本地网站建设
  • 浙江理工大学网站设计与建设网站前台修改后台对接不上
  • 网站建设经典教材无锡网站建设网页制作
  • 四川省建设工程质量与安全监督网站网站建设都是需要什么软件
  • 外贸网站优化在线推广关键词搜索爱站
  • 电子商务网站模板htmlWordPress中文改英文版
  • 一级a做爰片免费网站wordpress按时间获取文章列表
  • 网站优化的监测评估珠海专业网站建设
  • 机械做网站太原网站建设最好
  • 天津做网站网页的公司成都华阳有没有做网站的
  • seo 网站两个ip国内做视频课程的网站有哪些
  • 哪些网站可以做海报热点的网站建设项目描述范文
  • 长春网站制作最专业wordpress 最大数据量
  • 南山区网站建设百度应用市场app下载安装
  • 门户网站 建设php网站开发技术环境要求
  • 最早做视频播放网站企业qq官方下载
  • 蛋糕网站模版wordpress 访问源端口号
  • 企业网站用什么技术做wordpress文章末尾插件
  • 做网站网页挣钱不有产品做推广,选哪个 网站
  • 中国建设银行集团网站虚拟主机推荐
  • 番禺做网站设计公司怎么做网站推广