1,数组拷贝

#include<stdio.h>
#include<string.h>
#define MAX 32enum{STR1,STR2,STR_MAX,
};static const char *arr[] = {"Jack", "Lucy"
};int change_string(char *old_str, char *new_str) {int i = 0;// 匹配,修改拷贝字符串for(i=0; i<STR_MAX; i++) {if(!strncmp(old_str, arr[i] , strlen(old_str)+1)) {snprintf(new_str, MAX, "hello %s!", old_str);return 0;}}// 不匹配,直接赋值memcpy(new_str,old_str, MAX);return 0;
}int main() {char *old_str = "Jack";char new_str[MAX] = {0};change_string(old_str, new_str);printf("%s\n", new_str);return 0;
}

2,修改指针指向位置

#include<stdio.h>
#include<string.h>
#define MAX 32struct map {char *key;char *value;
};static struct map imap[] = {{"Jack","Hello Jack"},{"Lucy","Hello Lucy"}
};int change_string(char *old_str, char **new_str) {int i = 0;int max = sizeof(imap)/sizeof(imap[0]);// 匹配,指向新字符串for(i=0; i<max; i++) {if(!strncmp(old_str, imap[i].key, strlen(old_str)+1)) {*new_str = imap[i].value;return 0;}}// 不匹配,直接返回return 0;
}int main() {char *old_str = "Jack";char *new_str = old_str;change_string(old_str, &new_str);printf("%s\n", new_str);return 0;
}

该方式省去了内存拷贝,但是修改指针操作是非常危险的,要慎用!

C语言--修改字符串方式相关推荐

  1. c语言修改字符串c2133,通过create_string_buffer、create_unicode_buffer让C语言具备修改字符串的能力...

    字符串的修改 我们知道C中不存在字符串这个概念,python中的字符串在C中也是通过字符数组来实现的.我们说在C中创建一个字符数组有两种方式: char *s1 = "hello world ...

  2. C语言中字符串的处理方式(一)

    写多了 Java 代码,对 String 类 很是喜爱,可惜经典的 C 语言没有...最近在做程序过程中,发现对C语言字符串的处理很模糊,一会儿用数组,一会儿用指针,一会儿又引入 string.h.. ...

  3. C语言中字符串的处理方式

    http://www.cnblogs.com/robin-ty/archive/2010/09/03/1817294.html 交流纽带" --<C语言程序设计 现代方法> 写多 ...

  4. 在C语言中如何处理字符串,C语言中字符串的处理方式

    <C语言中字符串的处理方式>由会员分享,可在线阅读,更多相关<C语言中字符串的处理方式(4页珍藏版)>请在人人文库网上搜索. 1.C语言中字符串的处理方式"很难从字符 ...

  5. C语言文件——字符串的方式读出与写入

    C语言文件--字符串的方式读出与写入 conclusion: the steps of wirte into file process 1.定义文件路径和文件操作 2.定义文件指针以及存储变量 3.打 ...

  6. c语言创建字符串数组的两种方式

    字符串数组可以使用: (1)char a[] [10]; 用二维数组表示,c语言没有字符串关键字,所以只能用一维数组来表示字符串 例如: char a[] ="abcd"; (2) ...

  7. 定义咯一个枚举变量枚举变量怎么打印出来 linux c,以C语言的字符串形式输出枚举变量...

    2014年11月13日15: 17: 20 haifeilang阅读次数: 6295 每个枚举常量都对应一个整数. 很多时候它可以像整数一样使用. 每个人都知道这一点:但是,如果要打印枚举变量名称的字 ...

  8. 【C语言】字符串数组按字典升序

    [C语言]字符串数组按字典升序 文章目录 [C语言]字符串数组按字典升序 一.使用strcpy深拷贝实现字符串交换 二.交换字符指针数组中的指针位置,实现字符串交换 在使用C语言操作字符串时,容易出现 ...

  9. 【C语言】字符串函数详解

    hello~~,我是~小鹿 ,这是我的第一篇博客,没有循序渐进从基础开始写,只是最近在学习这里就写了,比较随心吧.希望这一篇博客能够给你带来帮助,之后也会继续写的,只是可能没有循序渐进,会比较杂七杂八 ...

最新文章

  1. c语言在车辆工程专业中的用途,车辆工程专业培养目标与毕业要求(11页)-原创力文档...
  2. 关于OC的内存管理-01
  3. 【转】Android 之最新最全的Intent传递数据方法
  4. Vue + Element UI——监听DOM元素高度和宽度解决方案整理(八种方法)
  5. 配置IntelliJ IDEA
  6. linux shell之case用法
  7. php判断微信版本,判断是否是微信访问并获取版本号
  8. WIN10找不到服务器共享文件,win10没有共享选项怎么办_win10文件属性没有共享选项的解决方法...
  9. Python模块:配置文件解析器configparser
  10. duplicate symbols for architecture arm64的问题结决方法
  11. Red5java.util.concurrent.RejectedExecutionExceptio
  12. Vi 编辑器常用命令
  13. java拆箱 装箱 一篇文章就够了
  14. 苞米豆mybatis-plus generator代码生成器3.5.1版本 Freemarker引擎
  15. 梯度下降法算法比较和进一步优化
  16. Canny算子中的梯度求取及非最大值抑制(NMS)实现
  17. 发邮件怎么把附件内容直接显示_优德分享:如何发邮件会让人觉得你更靠谱?...
  18. zblog php getlist,zblog使用getlist方法调用置顶文章
  19. 手写文字图片识别怎么弄?这几款软件安利快收好
  20. 关于戴尔台式机需要重启电脑才能识别耳机的问题解决

热门文章

  1. 400G QSFP-DD长距产品—QSFP-DD ER4光模块
  2. Filebeat快速入门
  3. klwp主题大全_Kustom LWP(附教程)-KLWP主题下载v3.44
  4. vscode配置Markdown snippet 的快捷键
  5. Foxmail发送邮件乱码的临时解决办法
  6. 项目显示红色感叹号问题解决
  7. WFE and WFI
  8. 几个优质的AI方向公众号
  9. 职场人都在用的办公软件,你用过哪几种呢?
  10. 苏州事业单位评计算机专技岗助理工程师初级职称流程