C语言中修改字符串的一个字符的值
来源:互联网 发布:adobe软件打不开 编辑:程序博客网 时间:2024/05/01 20:54
失败的方案(1):
char *a = "abcdefg";*(a+3) = 'n'; //想修改第四个的值为n
printf("The change qian de a is:%s\n",a);
输出时会显示段错误:Segmentation fault (core dumped)//字符串存放的内存区域不同:前者存放在常量区,不可修改
成功方案(2):
char *b,*a;b=new char[11];strncpy(b,"string",8);a=b;*(++b)='h';//*(a+3)='n';printf("The change hou de b is %s and a is %s\n",b,a);//字符串存放的内存区域为堆栈区,可以修改
成功方案(3):
char a[]="abcdef";*(a+3)='n';printf("The change qian de a is:%s\n",a);//字符串存放的内存区域为堆栈区,可以修改
原因如下:
注意char *a="abcdef"与char a[]="abcdef"的区别:1、字符串存放的内存区域不同:前者存放在常量区,不可修改,后则存放在栈中,可以修改;2、变量a存放的内容不同:前者存放的是一个地址,而后者存放的是字符串"abcdef",因此使用sizeof它们的结果是不同的,分别是4和7;此外关于new分配的对象数组的情形,以为是内存区中的修改。所以也是可以实现修改字符串的。
0 0
- C语言中修改字符串的一个字符的值
- C语言将一个字符串的字符转为一个数字
- 【C语言】 两种不同的方法在一个字符串中找指定的字符
- 【c语言】统计一个字符在字符串中出现的次数
- c语言实现 在一个字符串中找到由同一个字符组成的最长子串
- 【C语言】找出一个字符串中第一个只出现一次的字符
- c语言---输入一个字符串,删除其中的某一个字符
- 【c语言】一个字符串,包含n个字符。将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
- 【C语言】编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数。
- C语言:编写一个程序统计输入字符串中,各个数字、空白字符、以及其他所有字符出现的次数。
- C语言中字符常量和字符串常量的区别
- C语言实现删除字符串中特定的字符
- C语言中字符和字符串的处理函数总结
- C语言中字符型和字符串型的区别?
- C语言删除字符串中重复的字符
- C语言中字符串与字符数组的使用
- c语言实现找到字符串中出现最多的字符
- C语言中字符串常量和字符常量的区别
- 【C++进阶】深入理解C/C++(3)
- 面向对象——(10)委托与事件
- MySQL基础知识---------CHAR和VARCHAR类型
- 只愿得一人心白首不分离
- 甚瞥充艷縇聬蔮絔糮,衛疆螘懊粫遭!
- C语言中修改字符串的一个字符的值
- 虚拟机(Vmware)怎么进入BIOS
- 判断一个外部参照是overlay还是attachment。
- 简明的VIM攻略
- 路由器怎么与路由器连接
- .net js 键盘事件
- spring三种实例化bean的方式
- MAT内存泄露分析
- HTMLParser学习笔记2