请教如何强制转化类型把字符转化成整型?

jjoohhnn13 2007-12-22 01:15:22
char ar[10] = {'a','b','c','d','e','f','g','h','i','j'};

char str[4] = {'a','0','9','z'}

cout << ar[str[1]] << " ";

打印显示出来的是问号? 正确的应该是打印 a

--------------------------------------------------

我的目的是把STR字符串中非字符字母(也就是数字)作为字符数组ar的索引值,来取到相应的字母

好像看到能用指针来做强制转化,但又不会用,麻烦大虾给小弟支招~

...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
visame 2007-12-22
  • 打赏
  • 举报
回复
HelloDan 小朋友回答的很好,奖励大白兔奶糖!
calss_cyl 2007-12-22
  • 打赏
  • 举报
回复
没有看懂题目,感觉逻辑混乱。
既然你说要拿“STR字符串中非字符字母(也就是数字)”“作为字符数组ar的索引值”,你怎么在ar[str[x]] 中对ar的索引值str[x] 不做是不是“非字符字母(也就是数字)”的判断呢?
还有对于:
char ar[10] = {'a','b','c','d','e','f','g','h','i','j'};

char str[4] = {'a','0','9','z'}

cout < < ar[str[1]] < < " "; //这句中,str[1]是字符'a',它对应的int是90多好像,你取ar[90多],数组越界,当然不知道是什么值了。

ryfdizuo 2007-12-22
  • 打赏
  • 举报
回复
大哥也会犯错哦,
^_^^_^
飞哥 2007-12-22
  • 打赏
  • 举报
回复
呵呵,我得去查查ascii码表

发现自己错误了

0011 0000 48 30 0
飞哥 2007-12-22
  • 打赏
  • 举报
回复
0字符的ascii码可不是数字0哦
100多呢
ryfdizuo 2007-12-22
  • 打赏
  • 举报
回复

ls正解:
str[1]-'0', 或者str[1]-48直接减去数字,
HelloDan 2007-12-22
  • 打赏
  • 举报
回复

#include<iostream>

using namespace std;

int main()
{
char ar[10]={'a','b','c','d','e','f','g','h','i','j'};

char str[4]={'a','0','9','z'};

cout<<int('0')<<endl; //cout<<ar[str[1]]<<" "; yours out of the range of your array
cout<<ar[str[1]-'0']<<" ";
cout<<ar[int(str[1]-'0')]<<" ";
cout<<ar[static_cast<int>(str[1]-'0')]<<" ";

return 0;
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧