You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.3 KiB

## cameltosnakecase
### Instructions
Write a function that converts a `string` from `camelCase` to `snake_case`.
- If the `string` is empty, return an empty `string`.
- If the `string` is not `camelCase`, return the `string` unchanged.
- If the `string` is `camelCase`, return the `snake_case` version of the `string`.
For this exercise you need to know that `camelCase` has two different writing alternatives that will be accepted:
- lowerCamelCase
- UpperCamelCase
Rules for writing in `camelCase`:
- The word does not end on a capitalized letter (CamelCasE).
- No two capitalized letters shall follow directly each other (CamelCAse).
- Numbers or punctuation are not allowed in the word anywhere (camelCase1).
### Expected function
```go
func CamelToSnakeCase(s string) string{
}
```
### Usage
2 years ago
Here is a possible program to test your function:
```go
package main
import (
"fmt"
"piscine"
)
func main() {
fmt.Println(piscine.CamelToSnakeCase("HelloWorld"))
fmt.Println(piscine.CamelToSnakeCase("helloWorld"))
fmt.Println(piscine.CamelToSnakeCase("camelCase"))
fmt.Println(piscine.CamelToSnakeCase("CAMELtoSnackCASE"))
fmt.Println(piscine.CamelToSnakeCase("camelToSnakeCase"))
fmt.Println(piscine.CamelToSnakeCase("hey2"))
}
```
And its output:
```console
$ go run .
Hello_World
hello_World
camel_Case
CAMELtoSnackCASE
camel_To_Snake_Case
hey2
```