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 }

    运行结果:

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

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

  • 相关阅读:
    D. Constructing the Array
    B. Navigation System
    B. Dreamoon Likes Sequences
    A. Linova and Kingdom
    G. Special Permutation
    B. Xenia and Colorful Gems
    Firetrucks Are Red
    java getInstance()的使用
    java 静态代理和动态代理
    java 类加载机制和反射机制
  • 原文地址:https://www.cnblogs.com/engraver-lxw/p/7524421.html
Copyright © 2011-2022 走看看