一段关于atoi()函数的转换问题

世界杯梅西点球

社区 C语言 帖子详情 一段关于atoi()函数的转换问题 跟着心跳走 2012-01-08 08:26:52 #include #include int main() { char a[] = "-100" ; char b[] = "123" ; int c ; c = at……

社区

C语言 帖子详情 一段关于atoi()函数的转换问题 跟着心跳走 2012-01-08 08:26:52 #include

#include

int main()

{

char a[] = "-100" ;

char b[] = "123" ;

int c ;

c = atoi( a ) + atoi( b ) ;

printf("c = %d\n", c) ;

return 0;

}

执行结果 c = 23

问题:为什么会是 c=23,而不是c=123呢?我个人认为在c = atoi( a ) + atoi( b ) ;中,atoi(a)=0,atoi(b)=123,所以

c=123,不知道我的答案对不对?

...全文

542 16 打赏 收藏 一段关于atoi()函数的转换问题 #include #include int main() { char a[] = "-100" ; char b[] = "123" ; int c ; c = atoi( a ) + atoi( b ) ; printf("c = %d\n", c) ; return 0; } 执行结果 c = 23 问题:为什么会是 c=23,而不是c=123呢?我个人认为在c = atoi( a ) + at 复制链接

扫一扫 分享 转发到动态 举报 AI 作业

写回复 配置赞助广告取 消

确 定

用AI写文章 16 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 赵4老师 2012-01-10 打赏举报 回复 char a[] = "-100";//这样就会是0 (^_^)

siasjack 2012-01-10 打赏举报 回复

#include

int my_atoi(const char* p){

assert(p != NULL);

bool neg_flag = false;// 符号标记

int res = 0;// 结果

if(p[0] == '+' || p[0] == '-')

neg_flag = (*p++ != '+');

while(isdigit(*p)) res = res*10 + (*p++ - '0');

return neg_flag ? -res : res;

}

这是实现atoi的程序,程序中有关于正负号的区分! 炜娓道来程序人生 2012-01-10 打赏举报 回复 这个兄弟太搞笑了,你为什么认为该是0呢?讲讲 deandeanabcd123 2012-01-10 打赏举报 回复 可以区分,相关的还是可以上网看看源码 luciferisnotsatan 2012-01-10 打赏举报 回复 atoi认识负号,从它的返回类型int也能看出 jacknes009 2012-01-10 打赏举报 回复 atoi 区分正负的 跟着心跳走 2012-01-10 打赏举报 回复 谢谢大家! bihackers 2012-01-09 打赏举报 回复 atoi函数可以识别正负号的,你看到注释是那本书的饿..... robin平安 2012-01-08 打赏举报 回复 atoi()函数是可以区分 + - 号的,如果你想跳过 第一个负号可以使用 atoi( &a[1])..

一楼正解! 小耸 2012-01-08 打赏举报 回复 [Quote=引用 1 楼 nnrroo 的回复:]

你为什么会认为是 0 呢?

如果 atoi() 函数连个正负号都识别不出来, 这函数也太那个了......

你可以看看 atoi() 函数或者 atol() 的源代码. 里面有判断正负号的语句.

[/Quote]

++ AnYidan 2012-01-08 打赏举报 回复 lz 认为应该是多少?

为了一个函数,要更改千年来大家的共识吗? cookles13 2012-01-08 打赏举报 回复 C语言库函数名: atoi

功 能: 把字符串转换成整型数.

名字来源:array to integer 的缩写.

原型: int atoi(const char *nptr);

函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。

yuefy520 2012-01-08 打赏举报 回复 你既然已经赋值.怎么会是0呢. turing-complete 2012-01-08 打赏举报 回复 一楼讲的是正确的,正负号有判断的。 狂且 2012-01-08 打赏举报 回复 你为什么会认为是 0 呢?

如果 atoi() 函数连个正负号都识别不出来, 这函数也太那个了......

你可以看看 atoi() 函数或者 atol() 的源代码. 里面有判断正负号的语句. Ever_lover 2012-01-08 打赏举报 回复 看源码是解决此问题的最佳方式 c语言函数总结 c语言函数总结,自己的一些东西 atoi函数详解及其模拟实现——一篇文章带你彻底搞懂atoi 一篇文章带你彻底搞懂atoi函数! 【atoi函数的介绍以及模拟实现】 atoi函数功能讲解和模拟实现,以及相关函数介绍。 C语言--atoi函数(附模拟实现) 函数是 C 语言中的一个标准库函数,它的全称是 “ASCII to integer”,它接受一个字符串参数,并返回对应的整数。函数只接受 ASCII 字符的字符串。如果字符串中包含非 ASCII 字符,或者包含不能转换为数字的字符,那么。会忽略输入字符串中的空白字符(例如空格、换行符等),然后从第一个非空白字符开始,读取连续的数字字符,直到遇到非数字字符为止,将这一段数字字符转换为对应的整数值。类型的指针,指向要转换的字符串。函数返回值是转换后的整数值。,它的参数是一个指向字符串的指针。 C++中atoi()函数的用法 1 功能

atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串“12345”转换成数字12345。

2 格式

该函数的格式为

int atoi(const char* str)

其中,参数str是要转换的字符串,返回值是转换后的整数。

3 注意事项

3.1 关于参数的注意事项

在“2 格式”中提到,atoi()函数的参数是要转换的字符串。该字符串的格式为

[空格][符号][数字]

其中,空格可以是键盘中的空格字符或者是Tab字符;符号可以是表示正数的“+”,也可以是表示负数的“-”;数字即为数

C语言

70,026

社区成员

243,244

社区内容

发帖 与我相关 我的任务 C语言 C语言相关问题讨论 复制链接

扫一扫 分享 确定 社区描述 C语言相关问题讨论 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章