PTA L1-011 A-B

本文探讨了如何从字符串A中删除所有出现在字符串B中的字符,实现A-B的计算过程。通过读取两个字符串,利用fgets函数去除换行符,并采用逐字符比较的方法,实现了字符串的高效处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PTA L1-011 A-B

gets()函数:无限读取,遇到换行符结束,但在PTA中无法使用
替换:
fgets()函数:但是会将换行符读入
如何去换行符呢?

fgets(a,200,stdin);
while(a[i]!='\n') 
    i++;
a[i]='\0';   

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入格式:
输入在2行中先后给出字符串A和B。两字符串的长度都不超过10​4​​,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:
在一行中打印出A−B的结果字符串。
输入样例:

I love GPLT!  It's a fun game!
aeiou

输出样例:

I lv GPLT!  It's  fn gm!

我的代码:

#include<iostream>
#include<cstdio>
#include<string.h>
using namespace std;
int main()
{     
char a[10000],b[10000];     
int i=0;     
fgets(a,200,stdin);
while(a[i]!='\n') 
    i++;
a[i]='\0';i=0;    
fgets(b,200,stdin);
while(b[i]!='\n') 
    i++;
b[i]='\0';
     int j; 
    int len1,len2; 
    len1=strlen(a);   
    len2=strlen(b);    
    int k;   
    int count=0;   
     for(i=0;i<len2;i++)   
    {  for(j=0;j<len1;j++)  
       {   if(a[j]==b[i])        
          { for(k=j;k<len1-1;k++)               
                 a[k]=a[k+1];                
                  count++;           
           }         
         }      
     }    
   for(i=0;i<len1-count;i++)    
   cout<<a[i];     
   return 0;
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值