C/C++字符串,字符数组,字符指针及其相互静态拷贝与追加的安全问题解决方案(2)

来源:互联网 发布:js购物车结算代码 编辑:程序博客网 时间:2024/05/01 15:32

前言

接上篇内容,这次会描述字符串的安全追加,建议一样,看懂代码,不要盲目调试,多debug,多查看内存

代码及其解释

#include<stdio.h>#include<string>#include<iostream>using namespace std;#define SIZE 10/* 在使用这些函数时,应该加以封装来达到自己想要的效果 *///dn表示dest“已分配”(可用的)的空间//如dest[10]="abc";那么它的可用空间应该是10char* my_strncat(char *dest,const char *source, int dn){    int slen = strlen(source);    int dxlen = dn - strlen(dest) - 1;    if (dxlen >= slen)    {        return strncat(dest, source, slen);    }    else    {        return strncat(dest, source, dxlen);    }    return 0;}int main(){    /* 从简单入手 */    /* C CHAR[] TO C CHAR[] */    /* C CHAR*(指向的是常量) TO C CHAR[] */    char cchar1[SIZE] = "abc";    //dest    char cchar2[3] = "de";     //source1    char cchar3[] = "fghiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";   //source2    char *str1 = "jk";     //source3    char *str2 = "lmnoooooooooooooooooooooooooooooooooooo";   //source4    //my_strncat(cchar1, str2, SIZE);    //cout << cchar1 << endl;    /* 在c++字符串中追加字符串*/    string cppstr1 = "123";    string cppstr2 = "555";    //cppstr1.append(cchar2);    //cppstr1.append(str1);    //cppstr1.append(cppstr2);    //cout << cppstr1 << endl;    /* c++字符串追加到字符数组 */    char cchar4[SIZE] = "abcd";    //dest    string cppstr3 = "eturns a pointer to the destination string. No return value is reserved to indicate a"; //source1    string cppstr4 = "et";    //source2    my_strncat(cchar4, cppstr4.c_str(), SIZE);    cout << cchar4 << endl;    system("pause");    return 0;}

小系列文章小节

一直以为字符串就那么几个函数,玩玩api就好,没想到要注意那么多,之后自己去整理相关内容,一遍遍调试,折腾了挺久的,最终觉得,要处理好字符串和字符数组,主要还是其原理上,然后根据其内存情况来编程,而不能说一步到位,必须视需求来处理

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 练不会鲤鱼打挺怎么办 鲤鱼打挺脖子痛怎么办 新买的沙发太高怎么办 额最后离开公司没人关灯怎么办 看到我妹妹就烦怎么办 野塘钓鱼不开口怎么办 团关系找不到接收地怎么办 两岁宝宝就是不肯说话怎么办 两岁宝宝不肯吃药怎么办 并蹄莲叶子大黄怎么办 异地恋见面来大姨妈怎么办 奶水太多宝宝老是呛到怎么办 奶水太多吃奶婴儿呛怎么办 人家不愿意交我为朋友怎么办 面对诋毁我的人怎么办 做事太细致速度太慢怎么办 高一儿子早恋了怎么办 儿子18岁谈朋友怎么办 和朋友为钱吵架怎么办 感情里总担心失去怎么办 眼石移出盲僧怎么办 打仗把小便踢肿了怎么办 腿上都是挠的疤怎么办 脚上的肉烂了怎么办 商铺门口有电杆怎么办 漏电保护器坏了怎么办 空开进线烧了怎么办 过压保护灯亮怎么办 美的热水器接地异常怎么办 欠压保护器坏了怎么办 三孔插座没地线怎么办 二胡琴筒裂缝宽怎么办 有了月亮从四星宠满级的怎么办 党委下属没有党支部了党委怎么办 发生日期大于制单日期怎么办 美的空调出现p0怎么办 薯片受潮不脆了怎么办 泡过的莲子煮不烂怎么办 绿豆有煮不熟的怎么办 吃了羊肉吃西瓜怎么办 吃了狗肉和绿豆怎么办