gp语言分别利用数组和map来完成如下任务:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
时间: 2024-06-09 12:08:12 浏览: 27
使用数组实现:
```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var str string
fmt.Println("请输入一行字符:")
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
str = scanner.Text()
}
var nums [4]int
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z' {
nums[0]++
} else if str[i] == ' ' {
nums[1]++
} else if str[i] >= '0' && str[i] <= '9' {
nums[2]++
} else {
nums[3]++
}
}
fmt.Printf("英文字母个数: %d\n空格个数: %d\n数字个数: %d\n其它字符个数: %d\n", nums[0], nums[1], nums[2], nums[3])
}
```
使用 map 实现:
```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var str string
fmt.Println("请输入一行字符:")
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
str = scanner.Text()
}
nums := make(map[string]int)
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z' {
nums["英文字母"]++
} else if str[i] == ' ' {
nums["空格"]++
} else if str[i] >= '0' && str[i] <= '9' {
nums["数字"]++
} else {
nums["其它字符"]++
}
}
fmt.Printf("英文字母个数: %d\n空格个数: %d\n数字个数: %d\n其它字符个数: %d\n", nums["英文字母"], nums["空格"], nums["数字"], nums["其它字符"])
}
```
阅读全文