设为首页 加入收藏

TOP

程序猿之---C语言细节5
2014-11-23 19:42:12 来源: 作者: 【 】 浏览:11
Tags:程序 ---C 语言 细节

主要内容:字符串内存分配、合并两个字符串

#include 
  
   
#include 
   
     int main(int argc, char *argv[]) { /* * 字符串操作:内存分配 * 字符串s和t,希望将这两个字符串连接成单个字符串r */ char* s = "abc"; char* t = "def"; // 方法一: 缺点:1、不能确定r指向何处; // 2、同时不知道r所指向的内存空间是否有可容纳字符串的大小,并且是已经先分配的而不是用的是别程序使用的内存 #if 0 char* r; strcpy(r,s); strcat(r,t); printf("%s\n",r); #elseif 0 // 方法二: 缺点:s和t字符串加起来的大小不要超过r大小就能正常工作 char r[100]; // 预先指定了大小 strcpy(r,s); strcat(r,t); printf("%s\n",r); #elseif 0 //方法三: 缺点: 1、malloc函数可能无法提供请求的内存 // 2、r分配的内存在使用完之后要及时释放 // 3、malloc并未分配足够的内存,字符串需要'\0' 结束 char *r; r = malloc(strlen(s) + strlen(r)); strcpy(r,s); strcat(r,t); printf("%s\n",r); #else //方法四: char *r; r = malloc(strlen(s) + strlen(r) + 1); //为字符串'\0'分配内存 if (!r) // 判断是否分配成功 { printf("malloc failed!\n"); exit(1); } strcpy(r,s); strcat(r,t); printf("%s\n",r); free(r); // 释放内存 #endif return 0; }
   
  
输出:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇程序猿之---C语言细节9 下一篇程序猿之---C语言细节7

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: