首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

string 的长度改变的话,怎么得到新的长度

2013-09-26 
string 的长度改变的话,如何得到新的长度?做了一个去除重复字符的程序,用string变量存放的符串,去掉一个字

string 的长度改变的话,如何得到新的长度?
做了一个去除重复字符的程序,用string变量存放的符串,去掉一个字符的话,string变量的长度应该改变,用size()和length得到都是老字符串的长度,如何才能得到新字符串的长度?
#include<stdio.h>
#include<string>
using namespace std;

void main()
{
string st1;
int sz;
st1="aaabbbccc";
sz=st1.size();
for(int i=0;i<sz;i++)
for(int j=i+1;j<sz;j++)
{
if(st1[i]!='\0' && st1[i]==st1[j])
{
for(int m=j;m<st1.size();m++)
{
st1[m]=st1[m+1];
}
j--;
sz=st1.size();        //得到的长度一致是9,怎么回事
printf("%d\n",sz);

}
const char *ch=st1.c_str();
printf("%c",ch);
[解决办法]
string并不做下标检查,你也没有使string加长的语句。
看不懂你要实现什么?

另外,main函数返回整型!拜托了。
[解决办法]
你的string长度没有变化。。。
[解决办法]
哥哥阿,查看string的长度应该是sizeof()而不是size.还有,你应该清空缓存里面的内容。
[解决办法]

  楼上的,但是你的程序并没有改变原来string的长度啊,你是用新的变量替换了!
  所以原来的string变量的长度并没有发生改变!
  

热点排行