zoukankan      html  css  js  c++  java
  • 【原创】如何修改字符串中的字符

    如何修改字符串中的字符

    目的:用指针指向一个字符串,然后用指针加下标修改字符串中的某个字符。

    第一反应代码如下:

     1 #include<iostream>
     2 using namespace std;
     3 void test(char *a, int n)
     4 {
     5     a[n] = '0';
     6 }
     7 
     8 int main()
     9 {
    10     //char b[] = "987654321";
    11     //char* a= b;
    12     char* a = "987654321";
    13     printf("显示原始字符串a=%s
    ", a);
    14     a[0] = '1';
    15     printf("显示a[1]值是否从9改为1,a[1]=%c
    ", a[0]);
    16     printf("显示第1次修改后的字符串a=%s
    ",a);
    17     test(a,1);
    18     printf("显示第2次修改后的字符串a=%s
    ", a);
    19     system("pause");
    20     return 0;
    21 }

    但是运行结果报错,如下:

    也就是第14行代码a[0]='1';有问题。

    因为这里指针a指向的是一个字符串常量,常量是无法修改的。所以解决方案如下:

    先将其赋值到数组,再用指针指向这个数组,就可以实现用指针a修改或者用数组b修改了; 

     1 #include<iostream>
     2 using namespace std;
     3 void test(char *a, int n)
     4 {
     5     a[n] = '0';
     6 }
     7 
     8 int main()
     9 {
    10     char b[] = "987654321";
    11     char* a= b;
    12     //char* a = "987654321";
    13     printf("用指针a显示原始字符串a=%s
    ", a);
    14     printf("用数组b显示原始字符串b=%s
    ", b);
    15     a[0] = '1';
    16     printf("显示a[0]值是否从9改为1,a[0]=%c
    ", a[0]);
    17     printf("显示b[0]值是否从9改为1,b[0]=%c
    ", b[0]);
    18     printf("显示第1次修改后的字符串a=%s
    ",a);
    19     test(a,1);
    20     printf("显示第2次修改后的字符串a=%s
    ", a);
    21     system("pause");
    22     return 0;
    23 }

    运行结果:

      如有不对的地方,非常欢迎给予指导!

      如果您觉得这篇文章对您有所帮助,您可以点击右边的“打赏”功能,也可以点击下方的“好文要顶”按钮,因为这两种肯定,都让我更加相信自己所做的工作是有意义的,也是支持我继续写下去的最大动力!
      感谢您给予的支持!

  • 相关阅读:
    Linux-第一天
    Hadoop学习10--常用命令记录帖
    C# asp.net repeater实现排序功能,自动排序,点击头部排序,点击列排序
    图片与字符之间的转换
    兼容浏览器 div固定浏览器窗口底部 浮动div
    解决QQ未启用状态,QQ留言图标未启用
    C#Cookie操作类,删除Cookie,给Cookie赋值
    vs2008bin下Debug bll Release文件 obj下的Debug bll Release文件区别
    asp.net限制了上传文件大小为..M,解决方法
    多文件上传ajax jquery
  • 原文地址:https://www.cnblogs.com/engraver-lxw/p/7524421.html
Copyright © 2011-2022 走看看