#include<stdio.h>
int main(){
char a[101];
char c;
int p;
scanf("%s",&a);
scanf("%c",&c);
int o=0;
for(int i=0;a[i]!='\0';i++){
if(c==a[i])o++;
}
for(int i=0;a[i]!='\0';i++){
if(c==a[i]){
if(a[i]<a[i+1]){
p=i;
break;
}
o--;
if(o==0){
p=i;
break;
}
}
}
for(int i=0;a[i]!='\0';i++){
if(i!=p)printf("%c",a[i]);
}
return 0;
}
正常输入
两个代码只有了scanf形式不同
#include<stdio.h>
int main(){
char a[101];
char c;
int p;
scanf("%s %c",&a,&c);
int o=0;
for(int i=0;a[i]!='\0';i++){
if(c==a[i])o++;
}
for(int i=0;a[i]!='\0';i++){
if(c==a[i]){
if(a[i]<a[i+1]){
p=i;
break;
}
o--;
if(o==0){
p=i;
break;
}
}
}
for(int i=0;a[i]!='\0';i++){
if(i!=p)printf("%c",a[i]);
}
return 0;
}
上面的代码里c获得的是个空格呀,空格也是字符呀
你上下代码其实就差一个空格
可以分开写,但是空格别给丢了
这两个,你如果 输入s后, 再输入换行或 空格, c 都会接收的 换行或 空格,自然不会有后续输入了
scanf("%s",&a);
scanf("%c",&c);
// 这种要 输完 ,清理下输入流,或者 getchar() 将 换行和空格吃掉
scanf("%s",&a);
getchar();
scanf("%c",&c);
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!