From da4aece4048d4dc4d1a1f1673362f0fb7c128d6e Mon Sep 17 00:00:00 2001 From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de> Date: Fri, 7 Apr 2023 18:03:24 +0200 Subject: [PATCH] Solution to exercise of unit 02-06 --- exercise_0206/go.mod | 3 +++ exercise_0206/main.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 exercise_0206/go.mod create mode 100644 exercise_0206/main.go diff --git a/exercise_0206/go.mod b/exercise_0206/go.mod new file mode 100644 index 0000000..18ef6b3 --- /dev/null +++ b/exercise_0206/go.mod @@ -0,0 +1,3 @@ +module gitlab.reutlingen-university.de/go-exercises/go-starter/exercise_0206 + +go 1.20 diff --git a/exercise_0206/main.go b/exercise_0206/main.go new file mode 100644 index 0000000..0b9a164 --- /dev/null +++ b/exercise_0206/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "os" + "unicode/utf8" +) + +func printSlice(s []string) { + fmt.Printf("%p –len: %d cap: %d %#v\n", s, len(s), cap(s), s) +} + +func main() { + if len(os.Args) > 1 { + printSlice(os.Args) + numberOfRunes := 0 + numberOfBytes := 0 + for _, word := range os.Args[1:] { + numberOfBytes += len(word) + numberOfRunes += utf8.RuneCountInString(word) + } + fmt.Printf("Number of bytes: %d\n", numberOfBytes) + fmt.Printf("Number of runes: %d\n", numberOfRunes) + fmt.Printf("Average number of bytes per rune: %f\n", float32(numberOfBytes)/float32(numberOfRunes)) + } else { + fmt.Printf("Usage: %s <sentence>\n", os.Args[0]) + } +} -- GitLab