注册 登录
编程论坛 C++教室

[求助]怎么才能把char型的数组转换成int型?

milo0105 发布于 2007-08-18 17:38, 1631 次点击
char buf[100]="fjdsaofieaf32432";
怎样才能把buf转换成int型,然后又能够把得到的int型转换回来,和原来在buf[]里面输入的字符一致。
如果把每个字母a--z都对应一个数字1--26,这样行吗?但不知道具体怎么写代码。而且感觉应该很慢,有没有什么好办法?
5 回复
#2
卧龙孔明2007-08-18 18:05
[QUOTE]把每个字母a--z都对应一个数字1--26[/QUOTE]
如果这样,很容易实现
int i;
int bufi[100];
for(i=0;i<100;i++) bufi[i]=buf[i]-'a'+1;
#3
milo01052007-08-18 21:40
没看懂,buf[i]-'a' 等于什么阿?麻烦写清楚点。 怎样才能实现字符和数字的相互转换。
#4
圆圆的鸟蛋2007-08-18 22:24
把每个字母a--z都对应一个数字1--26
已知有字符buf,buf-'a'表示buf的ASC码值与'a'的ASC码值的差,即buf在26个英文字符中相对于'a'的位置,加上1就是绝对位置了。。于是乎,就有了孔明兄的那段代码。。
#5
leeco2007-08-19 22:17
以下是引用milo0105在2007-8-18 17:38:27的发言:
char buf[100]="fjdsaofieaf32432";
怎样才能把buf转换成int型,然后又能够把得到的int型转换回来,和原来在buf[]里面输入的字符一致。
如果把每个字母a--z都对应一个数字1--26,这样行吗?但不知道具体怎么写代码。而且感觉应该很慢,有没有什么好办法?

如果你把'a'映射到1,那'1'映射到什么?如果'1'也映射到1,那还怎么转回来?

#6
野比2007-08-20 00:11

建议你看一下ASCII字符表..一切就明白了...

1