
題目描述輸入一個字符串以回車結束字符串長度不超過 100。該字符串由若干個單詞組成單詞之間用一個空格隔開所有單詞區分大小寫。現需要將其中的某個單詞替換成另一個單詞并輸出替換之后的字符串。輸入格式輸入共 3 行。第 1 行是包含多個單詞的字符串 s;第 2 行是待替換的單詞 a(長度不超過 100);第 3 行是 a 將被替換的單詞 b(長度不超過 100)。輸出格式共一行輸出將 s 中所有單詞 a 替換成 b 之后的字符串。輸入樣例You want someone to help you You I輸出樣例I want someone to help you題解package main import (fmt strings bufio os ) func main(){ scanner:bufio.NewScanner(os.Stdin) scanner.Scan() s:scanner.Text() scanner.Scan() a:scanner.Text() scanner.Scan() b:scanner.Text() words:strings.Split(s, ) for i:range words{ if words[i]a{ words[i]b } } result : strings.Join(words, ) fmt.Println(result) }1. 導入必要的包go運行import ( fmt // 用于輸入輸出 strings // 用于字符串處理拆分、拼接等 bufio // 用于讀取帶空格的完整輸入 os // 提供標準輸入鍵盤的訪問 )2. 主函數main執行步驟1創建輸入掃描器go運行scanner : bufio.NewScanner(os.Stdin)創建一個scanner對象用于讀取鍵盤輸入支持讀取帶空格的完整行。bufio.Scanner是 Go 標準庫bufio包提供的 “輸入掃描工具”核心功能是按行讀取輸入遇到回車就結束一行還能處理帶空格的字符串這是fmt.Scan做不到的。os.Stdin是 Go 標準庫os包提供的 “標準輸入流”代表鍵盤輸入簡單說就是你在終端里敲的內容。scanner : ...短變量聲明創建一個名為scanner的變量類型是bufio.Scanner并把它和 “鍵盤輸入” 綁定起來。2讀取三行輸入go運行// 讀取第1行原字符串 s包含多個單詞的句子 scanner.Scan() s : scanner.Text() // 讀取第2行待替換的單詞 a scanner.Scan() a : scanner.Text() // 讀取第3行替換后的單詞 b scanner.Scan() b : scanner.Text()scanner.Scan()讀取一行輸入直到回車結束。scanner.Text()獲取讀取到的字符串內容。3拆分原字符串為單詞切片go運行words : strings.Split(s, )用strings.Split按空格拆分原字符串s得到一個單詞切片例如You want help拆分為[You, want, help]。4遍歷切片替換目標單詞go運行for i : range words { if words[i] a { // 找到與待替換單詞 a 匹配的單詞 words[i] b // 替換為單詞 b } }循環遍歷每個單詞若與a完全一致區分大小寫則替換為b。5拼接單詞并輸出結果go運行result : strings.Join(words, ) // 用空格拼接替換后的單詞切片 fmt.Println(result) // 輸出最終結果舉例驗證輸入樣例plaintext輸入第1行You want someone to help you 輸入第2行You 輸入第3行I拆分后words為[You, want, someone, to, help, you]。替換后words為[I, want, someone, to, help, you]。拼接輸出I want someone to help you與樣例輸出一致。