文章

35

粉丝

599

获赞

6

访问

309.9k

头像
为啥输出时for循环中间i<t改成i<c.length就没输出了
P1012 贵州大学机试题
发布于2019年12月27日 04:38
阅读数 9.1k

#include <iostream>

#include <cstdio>

#include <cstring>

#include <algorithm>

#include <string>

using namespace std;

int main() {

string a,b,c,d;

getline(cin,a);

int k=0,t=0;

for(int i=0;i<a.length();i++){

if(a[i]>='0'&&a[i]<='9'){

b[k++]=a[i];

}

else{

c[t++]=a[i];

}

}

for(int i=0;i<t;i++){//i<c.length()输出不了

cout<<c[i];

}

for(int i=0;i<k;i++){

cout<<b[i];

}

}

// d=c+b;

// //cout<<c<<b;

// for(int i=0;i<d.length();i++){

// cout<<d[i];

// }

// }

//sprintf(d,"%s%s",c,d);}

登录查看完整内容


登录后发布评论

4 条评论
admin SVIP
2019年12月27日 10:56

因为c.length()的值为0,虽然强行改变了string里面的值,但是length却不会随之改变。要么使用string的insert方法,要么改成char数组用strlen函数判断长度。

赞(0)

chenziyi : 回复 admin: 请问c不是有元素进去了吗 为啥length还是0啊 谢谢您

2019年12月27日 21:03

chenziyi : 回复 admin: 请问c不是有元素进去了吗 为啥length还是0啊 谢谢您

2019年12月27日 21:03

admin : 回复 admin: 这个就是C++的string类的问题了、简单说就是string是有自己的一套方法的、要按照它给的接口比如插入、删除、查找等函数去操作才行,具体的建议百度一下C++的string,很多博客有详细的讲解。

2019年12月28日 10:45