Yiyu Qian
2017-03-28 05:51
采纳率: 80%
浏览 3.6k

C++中string类字符串可以对其中某个下标元素赋值吗》?

例如string s="abc";
s[0]是'a'这是可以的。
那如果在s没有被初始化之前就对单个字符赋值难道是不可以的吗?
比如:string s;
s[0]='a';
这样编译器会提示string下标越界?只能先初始化吗?

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

4条回答 默认 最新

  • oyljerry 2017-03-28 06:11
    已采纳

    需要初始化,如果没有初始化,s还没有分配空间,你访问下标就越界了。

    已采纳该答案
    打赏 评论
  • baidu_37982584 2017-03-28 06:54

    你直接string s="abc";系统为s分配了空间,string字符串才可以看成char数组,
    如果直接声明string s;
    s[0]='a';
    系统没有为字符串s分配空间,s=null,没法看成char数组吧。

    打赏 评论
  • shen_wei 2017-03-28 09:48
        string s;   
        s[0] = 'd';
    

    如果看 s 的空间大小。。s有 15个字节的空间。。。

    <br>
图片说明

    打赏 评论
  • jalen_zh 2017-04-03 07:43

    你如果对string对象进行赋值过,而且保证没有越界的话,是可以这样处理string对象的

    打赏 评论

相关推荐 更多相似问题