用go语言写一个程序实现字符串反转
时间: 2023-12-29 16:46:45 浏览: 123
好的,以下是用Go语言实现字符串反转的程序:
```go
package main
import "fmt"
func reverseString(str string) string {
runes := []rune(str)
for i, j := 0, len(runes)-1; i < len(runes)/2; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func main() {
str := "Hello, world!"
fmt.Println(reverseString(str))
}
```
代码解释:
1. `reverseString` 函数接收一个字符串参数 `str`,并返回反转后的字符串。
2. 将 `str` 转换为 rune 切片,以便能够修改其元素(字符串是不可变的)。
3. 使用双指针法,从字符串的两端开始,交换对应位置的字符,直到指针相遇。
4. 将 rune 切片转换回字符串,并返回。
运行结果:
```
!dlrow ,olleH
```
相关问题
@编程助理 编写一个 Go 语言程序,要求用户输入一个字符串,程序将字符串反转并输出(要求支持中文)
在Go语言中编写一个简单的程序,让用户输入字符串并反转输出,包括中文字符,可以使用以下代码:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func reverseString(input string) string {
runes := []rune(input)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入一个字符串(包括中文):")
input, _ := reader.ReadString('\n')
// 移除换行符
input = strings.TrimSuffix(input, "\n")
reversed := reverseString(input)
fmt.Println("反转后的字符串是:", reversed)
}
```
在这个程序中,我们首先导入了必要的库,然后定义了一个`reverseString`函数,它接收一个字符串作为参数,通过双指针法将其反转。在`main`函数里,我们创建了一个`bufio.Scanner`来读取用户的输入,并去掉最后的换行符。接着,我们将用户输入传递给`reverseString`函数并打印出结果。
go语言编程实现从键盘上任意输入一个字符串,并按逆序输出该字符串。
好的,这是一个比较基础的编程问题。以下是使用 Go 语言编写的实现代码:
```go
package main
import "fmt"
func main() {
var str string
fmt.Println("请输入一个字符串:")
fmt.Scanln(&str)
// 将字符串转换为rune类型数组
runes := []rune(str)
// 遍历数组进行反转
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
// 将反转后的字符数组转换回字符串输出
reversedStr := string(runes)
fmt.Println("反转后的字符串为:", reversedStr)
}
```
这个程序中,我们使用 `fmt` 包中的 `Scanln` 函数从标准输入中读取一个字符串。然后,我们将这个字符串转换为 `rune` 类型的数组,并利用双指针法将这个数组中的元素进行反转。最后,我们将反转后的字符数组重新转换为字符串,并输出。
阅读全文