具体实现方法可以参考如下程序段:
char str[]="abds%*&34dfs" // 定义一个字符数组,存放待转换为ASCII码的字符串
int AsciiNum[20] // 定义一个整型数组,存放字符所对应的ASCII码值,数组大小根据字符串长度进行设置
int i
// 将字符串的每个字符逐个赋值给整型数组AsciiNum,即实现字符到ASCII码值的转换
for(i=0i<strlen(str)i++)
{
AsciiNum[i] = str[i] // 最后数组AsciiNum就是字符串每个字符所对应ASCII码值的数组
}
一般来说,我们不会直接使用ASCII码来处理,因为这样不够直观。比如你说的判定输入是否是字母,是否是数字,那么有个比较直观的方法来处理。如果你看过ASCII码表,那么你就知道字数和字母在ASCII码表中都是连续的,所以这个就比较好解决了。判定字符ch是否是数字:
if(ch>='0' &&ch<='9')
判定字符ch是否是字母:
if(ch>='a' &&ch<='z' || ch>='A' &&ch<='Z')
当然,有已经定义好的库函数用来判定是否数字和字母,不要加加载头文件<ctype.h>
判定字符ch是否是数字:
if(isalnum(ch))
判定字符ch是否是字母:
if(isalpha(ch))
这两个函数都是判定成立,结果是true也就是1,判定不成立,结果是false,也就是0.
package main
import (
"fmt"
"code.google.com/p/mahonia"
)
func main() {
s := "\xb6\xd4\xb6\xc0\xc1\xa2\xd1\xa7\xd4\xba\xbf\xc9\xb3\xd6\xd0\xf8\xb7\xa2\xd5\xb9\xce\xca\xcc\xe2"
enc := mahonia.NewDecoder("gbk")
fmt.Println(enc.ConvertString(s))
}
代码仅供参考,请根据需要自行修改。