崖高人远
2016-02-17 08:36
采纳率: 81.8%
浏览 4.5k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • blownewbee 2016-02-17 08:43
    已采纳

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

    点赞 评论
  • t18267174450 2016-02-17 08:40

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

    点赞 评论
  • 2wuliao 2016-02-17 08:40

    char* s={"12"};

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

    点赞 评论
  • Antway_ 2016-02-17 12:36

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

    点赞 评论
  • mudbee 2016-02-17 16:09

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

    点赞 评论
  • Heart09 2016-02-18 08:57

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

    点赞 评论
  • qwe989796 2019-09-18 16:43

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

    点赞 评论

相关推荐 更多相似问题