当前位置:  开发笔记 > 开发工具 > 正文

如何将字符串转换为unsigned int?C

如何解决《如何将字符串转换为unsignedint?C》经验,为你挑选了1个好方法。

需要将字符串转换unsigned int为C。我尝试使用sscanf()strtoul(),但是在输入负数(例如将-123它们反转)时都不会使用它们,并且不会发出有关错误的信号。

我的意思是,那strtoul(-1)将返回,UNSIGNED_INT_MAX - 1而不是错误。

我需要一些可以做到的事情:

“ 123”-很好

“ -123”-错误

“ wewe”-错误

“ 123wew”-错误



1> Brad..:

您可以尝试检查字符串中的所有单个字符,以确保它们是数字(isdigit()是您的朋友)-然后,如果通过,则调用strtoul。有人可能会争辩说您可以进行正则表达式调用或执行其他操作-但最终,必须进行某些检查。

unsigned int convert(char *st) {
  char *x;
  for (x = st ; *x ; x++) {
    if (!isdigit(*x))
      return 0L;
  }
  return (strtoul(st, 0L, 10));
}

(如果字符串无效,我将“返回零”-您必须根据自己的喜好更改行为”)

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有