创建 atoi 函数

2023-12-13

我正在尝试创建自己的 atoi 函数。通过以下代码,我得到的返回值为 0。无论我更改函数中的数字变量,我都会得到返回值。关于修改代码有什么建议吗?

//my atoi function
int atoi_me(char *numstring)
{
    int number = 0;
    while((*numstring >= '0') && (*numstring <= '9'))
    {
        number = (number * 10) + (*numstring - '0');
        numstring++;
    }

    return number;
}

int main()
{
    char *number[MAXSIZE];
    int num;

    printf("Please enter a number:\n");
    scanf("%c", &number);
    num = atoi_me(*number);
    printf("%d", num);
    return 0;
}

  1. 你正在声明一个数组char *,即字符串数组,而不是单个字符串。您可能想要:

    char number[MAXSIZE];
    
  2. Your scanf格式字符串错误。如果你想读取一个字符串,你应该使用%s. %c只读取一个字符。

  3. Your scanf参数错误-通过number本身(或&number[0]如果你愿意的话),而不是&number.

  4. 您要传递给的参数atoi_me是错的。调用它number(或同等地&number[0]), not *number.

把所有这些放在一起,你应该有一个main例行公事是这样的:

int main(void)
{
    char number[MAXSIZE];
    int num;
    printf("Please enter a number: ");
    scanf("%s", number);
    num = atoi_me(number);
    printf("%d\n", num);
    return 0;
} 

编者注:您有潜在的缓冲区溢出scanf线。你最好使用像这样的函数fgets(3)这使得防范此类问题变得容易。

atoi(3)传统上也支持负数(带有前导-)和一个可选的前导+对于正数,您的实现无法处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建 atoi 函数 的相关文章

  • 在 JavaScript 中引用 C# 变量

    我已经阅读了很多线程 但我不明白为什么这不起作用 我正在创建一个将用作导航栏的 SharePoint Web 部件 一切都很顺利 直到我尝试在 JS 代码中引用 C 变量 这是来自 VisualWebPart1UserControl asc
  • C# 中输入按键

    我尝试了这段代码 private void textBox1 KeyPress object sender KeyPressEventArgs e if Convert ToInt32 e KeyChar 13 MessageBox Sho
  • C++ 中可以使用匿名类作为返回类型吗?

    有没有办法在 C 中使用匿名类作为返回类型 我用谷歌搜索这可能有效 struct Test fun 但是这段代码无法编译 错误信息是 新类型不能在返回类型中定义 其实代码没有任何意义 我只是想弄清楚匿名类是否可以用作C 中的返回类型 这是我
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • Xcode 新手无法用 C++ 打开文件?

    我一直在我参加的课程中使用 Windows 但我正在尝试运行基本代码来弄清楚如何从 Xcode 上的文件打开 关闭 输入 输出 而我通常在 Visual Studio 上使用的代码不是不知道为什么 谢谢 include
  • Moq - 是否可以在不使用 It.IsAny 的情况下设置模拟

    我一直使用 Moq 进行单元测试 有时我会嘲笑有很多参数的方法 想象一下这样的方法 public class WorkClient public void DoSomething string itemName int itemCount
  • 使用 (float&)int 进行类型双关可以正常工作,(float const&)int 会像 (float)int 一样转换吗?

    VS2019 发布 x86 template
  • 我如何模拟 UserManager 和 RoleManager 进行单元测试

    我模拟了抽象类来测试类的具体方法 如下所示 var mock new Mock
  • 代码块 - 使用大地址感知标志进行编译

    如何使用以下命令在 64 位系统上编译 32 位应用程序LARGE ADRESS AWARE使用代码块标记 我需要使用超过 2GB 的内存 应该是添加的情况 Wl large address aware到链接标志 我不使用 CodeBloc
  • 如何按名字和姓氏排序,然后按 SamAccountName 排序,其中并非所有姓名都有名字和姓氏?

    目前 我有以下内容 来自 LDAP Get context based on currently logged on user PrincipalContext domainContext new PrincipalContext Cont
  • 使用 ClosedXML 附加到 excel 文件

    我需要将新数据附加到使用 ClosedXML 创建的现有 Excel 文件中 如何使用 ClosedXML 附加到 Excel 文件 如何获取最后一条记录的行号并将其附加到该行号上 或者还有其他内容 Thanks 打开现有工作簿 然后使用L
  • PowerShell 与 MongoDB C# 驱动程序方法不兼容?

    由 C 泛型引起的最新 MongoDB 驱动程序的问题 Cannot find an overload for GetCollection and the argument count 1 我可能可以使用其他没有泛型的 GetCollect
  • 什么是 C++11 扩展 [-Wc++11-extensions]

    我需要一些帮助来了解此错误发生的位置 警告 非静态数据成员的类内初始化是 C 11 扩展 Wc 11 extensions 这是它来自的代码部分 typedef struct Hand bool straight false bool fl
  • 如何使用 MongoDB 实现 ASP.NET Core 3.1 Identity?

    是一个 API 用于简化后端和逻辑代码来管理用户 密码 个人资料数据 角色 声明 令牌 电子邮件确认等 对于 Visual Studio 来说 支撑脚手架 https learn microsoft com en us aspnet cor
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • SQL Server CE 不兼容的数据库版本

    我有一个 SQL Server CE 4 0 数据库 sdf文件 当我尝试从我的应用程序 WPF 对数据库进行查询时 出现以下错误 数据库版本不兼容 如果这是兼容文件 请运行修复 其他情况请参考文档 数据库版本 4000000 请求的版本
  • 查找文本文件中每行的行大小

    如何计算每行中的字符或数字数量 是否有类似 EOF 的东西更像是行尾 您可以遍历行中的每个字符并不断增加计数器直到行尾 n 遇到 确保以文本模式打开文件 r 而不是二进制模式 rb 否则流不会自动将不同平台的行结束序列转换为 n 人物 这是
  • 如何在c#中获取斐波那契数

    伙计们 我有一个关于斐波那契的问题 如何获得斐波那契数列 该数字也将以用户输入结束 例如 如果我输入 21 则输出必须为 0 1 1 2 3 5 8 13 21 这是我的代码 static void Main string args int
  • 使用 List.Contains 方法为 LINQ 构建表达式树

    Problem 我正在重构一些LINQ查询我们的 Web 应用程序中的多个报告 并且我尝试将一些重复的查询谓词移至它们自己的中IQueryable扩展方法 以便我们可以将它们重新用于这些报告以及将来的报告 正如您可能推断的那样 我已经重构了
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js

随机推荐

  • JavaScript 数组中对象的分组、不同计数、求和

    这可能是补救措施 但我无法弄清楚 我尝试过使用 d3 并使用 lodash 来获得有效的解决方案 但没有得到任何接近的结果 我有一个 JavaScript 对象数组 如果 Selected 值为 true 我想创建一个按 Version N
  • Access 中 Left() 和 Left$() 函数的区别

    我正在尝试调试损坏的查询 查询使用 Left blahblah 4 而不是 Left blahblah 4 Left 和 Left 函数有什么区别 微软访问 结尾的 是 String 数据类型的类型声明字符 VBA Left 返回的结果是一
  • cakephp-file-storage 快速入门指南

    https github com burzum cakephp file storage blob 3 0 docs Tutorials Quick Start md 按照教程 一切都搞砸了 或者我都搞砸了 三个表 产品图像 和 产品图像
  • 将 Django 项目移植到 Python 3 和 Django 2 时的迁移问题

    我一直在将 Django 项目移植到 Python 3 和 Django 2 我必须按照 Django 2 中的要求 将 on delete 添加到带有外键的所有模型中 现在我尝试对这些更改进行迁移TypeError init missin
  • 使用 cout << 运算符时如何用前导零填充浮点数

    将这些问题放在一起 使用 cout 使用 cout 打印正确的小数位数 我如何流式传输到 std cout 例如这个变量 double x 7 1224 并让它看起来像这样 07 12 Combine std setw std setfil
  • 限制 UITextField 中的字符数[重复]

    这个问题在这里已经有答案了 我看过很多答案 但似乎没有一个起作用 我有一个以编程方式创建的 UIAlertView 其中包含两个 UITextFields 我想限制字符数 第一个字段有 12 个字符 第二个字段中有 1 个字符 第一个字段代
  • 在 iOS 5 中预填充核心数据

    貌似有一些修改NSPersistentStoreCoordinator方法是iOS 5 我正在尝试获取预填充的数据库 它似乎不起作用 没有崩溃 但似乎没有数据存在 有什么建议吗 NSPersistentStoreCoordinator pe
  • 根据批准状态和特定订单项目更改 WooCommerce 订单状态

    当当前状态为 已批准 且订单包含特定产品 id 10 时 我尝试将 WooCommerce 订单状态更改为 处理中 我尝试了下面的代码 但它不起作用 我对 php 很陌生 希望得到任何指导 add action woocommerce or
  • __lt__ 实际上对列表做什么[重复]

    这个问题在这里已经有答案了 假设我有两个列表 然后运行以下命令 gt gt gt s 1 2 3 gt gt gt t 1 2 4 gt gt gt s gt t False gt gt gt s lt t True 但是如果我运行以下命令
  • 显示子级的innerHTML

    i have td div aaaaaa div td 我怎样才能获得 td1 的孩子的innerHTML function displaymessage var i 0 alert document getElementById td1
  • 更新/提取 Mongodb/Mongoose 子文档数组中包含的数组中的值

    我在 mongoDB 集合中有一个文档 如下所示 id 5d4721e0b904e825755eaf89 sellers id 5d5eeaf7867a4e1e9a1219e6 bizs id 6a5eeaf7867a4e124a1219a
  • C 语言有 setfill() 替代方案吗?

    In C int main cout lt lt setfill lt lt setw 10 lt lt 5 lt lt endl return 0 Outputs 5 有没有setfill C 的替代品 或者如何在 C 中执行此操作而无需
  • Windows 窗体应用程序,带有窗体的自动缩放控件

    我是新手 设计一个可以调整大小的表单 并且我希望我的文本框 标签和按钮随表单调整大小 有人可以告诉我该怎么做吗 这取决于您需要的布局类型 您必须执行的 基本工具 具有以下属性 Anchor and Dock Anchor 使用 Anchor
  • 在运行时生成 HTML 文件并作为电子邮件附件发送

    我有一个项目要求 我们需要将 HTML 格式的日志表附加到发送给用户的电子邮件中 我不希望日志表成为正文的一部分 我不想使用 HTMLTextWriter 或 StringBuilder 因为日志表非常复杂 是否有另一种我没有提到的方法或可
  • PHP 从 XML 中检索数据

    我第一次尝试从地图应用程序的 XML 检索数据失败了 这是 XML Feed 的一部分
  • 使用productElements将元组转换为HList

    我正在使用 Shapeless 2 2 5 我尝试使用下面的代码将元组转换为 HList import shapeless import syntax std product 23 foo 2 0 true productElements
  • JavaScript、浏览器、窗口关闭 - 发送 AJAX 请求或在窗口关闭时运行脚本

    我试图找出用户何时离开指定页面 找出他何时使用页面内的链接导航离开是没有问题的 但我需要标记一些内容 例如他关闭窗口或键入另一个 URL 并按 Enter 键时 第二个不太重要 但第一个很重要 所以问题是 我怎样才能看到用户何时关闭我的页面
  • 如何以编程方式设置 iPhone 壁纸

    我正在开发一个应用程序 其中我必须将图像设置为iPhone壁纸 滑动解锁 屏幕上的背景图像 我们有这方面的 API 参考吗 请帮忙 提前致谢 帕尔梅斯瓦尔 目前 您唯一可以做的就是将图像保存到相机胶卷中 并为用户提供有关如何使用新图像更改壁
  • 在trigger_error之前的'@'(沉默运算符,at符号)的目的是什么?

    我在许多 Symfony 包 以及其他代码 中看到了这一行 trigger error The class is deprecated E USER DEPRECATED 根据文档 at 运算符用于消除错误 http php net man
  • 创建 atoi 函数

    我正在尝试创建自己的 atoi 函数 通过以下代码 我得到的返回值为 0 无论我更改函数中的数字变量 我都会得到返回值 关于修改代码有什么建议吗 my atoi function int atoi me char numstring int