給定一個表示單詞的字符串var word和一個表示字母的字符串var letter,我如何計算單詞中重音字母的數量?如果var letter是一個非重音單詞,我的代碼可以工作,但是當字母是重音或任何特殊字符時,var counter打印數字 0。package mainimport "fmt"func main() { word := "cèòài" letter := "è" var counter int for i := 0; i < len(word); i++ { if string(word[i]) == letter { counter++ } } fmt.Print(counter)} 我想這個錯誤是由于一些編碼問題引起的,但我不太明白我需要研究什么。
2 回答

冉冉說
TA貢獻1877條經驗 獲得超1個贊
如何利用:strings.Count
package main
import (
"fmt"
"strings"
)
func main() {
word := "cèòài"
letter := "è"
letterOccurences := strings.Count(word, letter)
fmt.Printf("No. of occurences of \"%s\" in \"%s\": %d\n", letter, word, letterOccurences)
}
輸出:
No. of occurences of "è" in "cèòài": 1

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
字符串中的字母(又名符文)可能與字節偏移量不完全匹配:
要在其各個符文上迭代一個字符串:
for pos, l := range word {
_ = pos // byte position e.g. 3rd rune may be at byte-position 6 because of multi-byte runes
if string(l) == letter {
counter++
}
}
https://go.dev/play/p/wZOIEedf-ee
- 2 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消