我必须为我的学校做一个密码学项目,我为这个项目选择了 Go!
我读了文档,但我只会 C,所以现在对我来说有点难。
首先,我需要收集程序参数,我做到了。我将所有参数存储在一个字符串变量中,例如:
var text, base string = os.Args[1], os. Args[6]
现在,我需要将 ASCII 码存储在一个 int 数组中,例如,在 C 中我会做类似的事情:
int arr[18];
char str[18] = "Hi Stack OverFlow";
arr[i] = str[i] - 96;
那么我怎么能在 Go 中做到这一点呢?
谢谢!
最佳答案
这是一个与其他答案类似但避免导入额外包的示例。
创建一个长度等于string
长度的int
slice 。然后迭代字符串以将每个字符提取为 int
并将其分配给 int slice 中的相应索引。这是代码(also on the Go Playground):
package main
import "fmt"
func main() {
s := "Hi Stack OverFlow"
fmt.Println(StringToInts(s))
}
// makes a slice of int and stores each char from string
// as int in the slice
func StringToInts(s string) (intSlice []int) {
intSlice = make([]int, len(s))
for i, _ := range s {
intSlice[i] = int(s[i])
}
return
}
上述程序的输出是:
[72 105 32 83 116 97 99 107 32 79 118 101 114 70 108 111 119]
上面的 StringToInts
函数应该做你想做的。虽然它返回 int
的 slice
(不是数组),但它应该满足您的用例。
关于go - 如何将字符串转换为 C 语言中的 ASCII 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133888/