dongguxidu1
崖高人远
采纳率81.8%
2016-02-17 08:36 阅读 4.5k

C++中字符串中交换字符的问题

1

// char* s = "12";//为什么使用这样的方式会报错?
char s[] = "12";
char t;
t = s[0];
s[0] = s[1];
s[1] = t;

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2016-02-17 08:43

    char* s = "12";
    这里s指向的是常量区的字符串12,不能修改。
    必须用
    char [] temp = "12";
    char *s = &temp[0];

    点赞 2 评论 复制链接分享
  • Mr_dsw Andoter 2016-02-17 12:36

    不会报错的,char *s1 = "hello"; char *s1 的s1,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。

    点赞 1 评论 复制链接分享
  • t18267174450 t18267174450 2016-02-17 08:40

    有错误截图吗,我的不报错

    点赞 评论 复制链接分享
  • 2wuliao 2wuliao 2016-02-17 08:40

    char* s={"12"};

    点赞 评论 复制链接分享
  • q3733353520 我用双手-成就你的梦想 2016-02-17 08:43

    那样s就指向常量区,
    s[0] = s[1];
    s[1] = t;//那么这2句都有问题

    点赞 评论 复制链接分享
  • mudbee mudbee 2016-02-17 16:09

    “12” 是 const char* 。可以用 char * p= const_cast("12");

    点赞 评论 复制链接分享
  • henuyx Heart09 2016-02-18 08:57

    const char* s= "12";
    也会有错吗?

    点赞 评论 复制链接分享
  • qwe989796 qwe989796 2019-09-18 16:43

    在C++字符串中不合法语言标识符有哪些

    点赞 评论 复制链接分享

相关推荐