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 }

    运行结果:

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

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

  • 相关阅读:
    使用Intent传递类对象
    C#中关于类的序列化
    Android 中使用内存监测工具Heap,及内存分析工具 MAT
    Android Framework 记录之一
    Android 2.3发短信详细流程
    AIDL原理解析
    eclipse 快捷键
    什么时候加上android.intent.category.DEFAULT和LAUNCHER
    Monkey测试简介
    Phone状态的监听机制
  • 原文地址:https://www.cnblogs.com/engraver-lxw/p/7524421.html
Copyright © 2011-2022 走看看