怎么用atoi改变char数组里面单个字符

qq_29338967 2019-05-10 04:07:27
我有一个二维char数组,想用atoi来对数组里面的两个字符进行加减法 比如 char a[n][n] 我想让a[0][0]+a[1][1]//假设a[0][0]=1 a[1][1]=2 我理想的结果是等于3 但是atoi好像直接是吧指针位置以后的一行全部变成了int 我得到的结果就是1....加上2.... 请问怎么只把指针位置的char改变成int呢
...全文
256 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-05-10
  • 打赏
  • 举报
回复
电脑内存或文件内容或传输内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容或传输内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……
qq_29338967 2019-05-10
  • 打赏
  • 举报
回复
引用 4 楼 sdghchj 的回复:
好的
qq_29338967 2019-05-10
  • 打赏
  • 举报
回复
引用 3 楼 KarivV 的回复:
[quote=引用 2 楼 qq_29338967 的回复:] [quote=引用 1 楼 sdghchj 的回复:]搞清楚你的1是二进制数字1还是字符‘1’ 如果是字符:(a[0][0]-'0')+ (a[1][1]-'0') 就是3
我的是'数字' 所以可以不用atoi函数吗[/quote]

定义于头文件 <stdlib.h>
int       atoi( const char *str );
long      atol( const char *str );
long long atoll( const char *str );
atoi的参数是const char * 你对a[0][0]使用他会自动扫描后面的字符 你想要把单个字符转换成数字 直接 num = a[i][j] - '0';就行了 [/quote]好的谢谢
sdghchj 2019-05-10
  • 打赏
  • 举报
回复
引用 2 楼 qq_29338967 的回复:
[quote=引用 1 楼 sdghchj 的回复:]搞清楚你的1是二进制数字1还是字符‘1’ 如果是字符:(a[0][0]-'0')+ (a[1][1]-'0') 就是3
我的是'数字' 所以可以不用atoi函数吗[/quote] 我意思是你要分清楚:char a = 1跟char a = '1' 的区别,是字符还是它的ascii码
好运萝 2019-05-10
  • 打赏
  • 举报
回复
引用 2 楼 qq_29338967 的回复:
[quote=引用 1 楼 sdghchj 的回复:]搞清楚你的1是二进制数字1还是字符‘1’ 如果是字符:(a[0][0]-'0')+ (a[1][1]-'0') 就是3
我的是'数字' 所以可以不用atoi函数吗[/quote]

定义于头文件 <stdlib.h>
int       atoi( const char *str );
long      atol( const char *str );
long long atoll( const char *str );
atoi的参数是const char * 你对a[0][0]使用他会自动扫描后面的字符 你想要把单个字符转换成数字 直接 num = a[i][j] - '0';就行了
qq_29338967 2019-05-10
  • 打赏
  • 举报
回复
引用 1 楼 sdghchj 的回复:
搞清楚你的1是二进制数字1还是字符‘1’ 如果是字符:(a[0][0]-'0')+ (a[1][1]-'0') 就是3
我的是'数字' 所以可以不用atoi函数吗
sdghchj 2019-05-10
  • 打赏
  • 举报
回复
搞清楚你的1是二进制数字1还是字符‘1’ 如果是字符:(a[0][0]-'0')+ (a[1][1]-'0') 就是3

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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