【PTA团体程序设计天梯赛】
L1-011 A-B (20 分)
本题要求你计算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!
结尾无空行
fmt.Scan这些函数的输入会有错误,换一种获取输入的方法即可
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
var s, l, result string
// 创建一个Scanner实例来从标准输入读取数据
scanner := bufio.NewScanner(os.Stdin)
// 读取第一个字符串
if scanner.Scan() {
s = scanner.Text()
} else {
fmt.Fprintln(os.Stderr, "读取第一个字符串时出错:", scanner.Err())
return
}
// 读取第二个字符串
if scanner.Scan() {
l = scanner.Text()
result = s
for _, item := range l {
result = strings.Replace(result, string(item), "", -1)
}
fmt.Print(result)
} else {
fmt.Fprintln(os.Stderr, "读取第二个字符串时出错:", scanner.Err())
}
// 检查在Scanner关闭前是否还有错误
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, "Scanner错误:", err)
}
}