c++ 华为练习 四 删除字符串中的指定字符
#include <iostream>using namespace std;
int main(void){
char a;
char b;
cin.getline(a,100);
cin.getline(b,100);
int an=0;
//int bn=0;
bool charninb;
for(int i=0;i<100;i++){
if(a!='\0')an++;
if(b!='\0'){
//bn++;
if(b>='a'&&b<='z'){
charninb-'a']=false;
}
}
}
char out;
int k=0;
for(int i=0;i<an;i++){
if(charninb-'a'])
out=a;
}
out='\0';
cout<<out<<endl;
cin>>a;
return 0;
}
不知道它用的声明高端的测试用例,使我这个答案出错了额,华为究竟用的什么用例呢,就算我把它改为 在一行 输入两个句的情况,用cin读入,读每一行时连对应所有的字符包括空格都删除,用cin.getline读入,甚至尝试读入长度10000的字符串,结果都错了。那是哪里有问题呢?
我还对连续输入多行,一行为a,一行为b的情况也进行了判断,还是无法得到正确结果。
#include <iostream>
using namespace std;
int main(void){
char a;
char b;
// cin>>a;
//cin>>b;
cin.getline(a,1000);
cin.getline(b,1000);
//for(int i=0;i<80;i++)
//b=a;
/*
char c;
int n=0;
while(cin>>c){
if(c!='\n'&&c!='\0'){
a=c;
}else
break;
}
a='\0';
n=0;
while(cin>>c){
if(c!='\n'&&c!='\0'){
b=c;
}else
break;
}
b='\0';
*/
int an=0;
//int bn=0;
bool charninb;
for(int i=0;i<1000;i++){
if(a!='\0')an++;
if(b!='\0'){
//bn++;
if(b>=1&&b<=126){
charninb]=false;
}
}
}
char out;
int k=0;
for(int i=0;i<an;i++){
if(charninb])
out=a;
}
out='\0';
cout<<out<<endl;
return 0;
}
页:
[1]