string赋值的小误区

       在编译原理的实验时,用到了大量的C++的字符串相关知识,很多基础知识已经模糊。在写一处string赋值时,一直出现错误

        问题是假如有一个字符串,定义string A="",要逐个字符给A赋值开始的我是这样的写的

        string A;
       for(int i;i<n;i++)
        { 
          A[i]=a[i]; //a[i]为要赋值字符串
         }

       但赋值后输出为空,脑子好久没转过来,去网上查了查,发现虽然这样可以运行,但是确实不合法的,A的默认长度为0,再赋值A[0],A[1]是其实是无效的,所以A的值输出一直为空,要进行赋值需要这样写

        string A;
       for(int i;i<n;i++)
        { 
          A+=a[i]; //a[i]为要赋值字符串
         }

  

 

posted @ 2020-06-14 17:35  夏小皮  阅读(248)  评论(0编辑  收藏  举报