diff --git a/exercise_0206/go.mod b/exercise_0206/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..18ef6b37ae38abbdcc43933489c90f1010021807 --- /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 0000000000000000000000000000000000000000..0b9a164feb56b6742ad29d730c36020d3e940532 --- /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]) + } +}