首页 > 解决方案 > 如何删除字符串中的第一个零?(不使用atoi)

问题描述

我正在制作一个脚本,计算两个自然数之间的加法,其中十进制长度应小于或等于 10000,并打印总和的结果。

当然,在 C 中没有任何变量类型可以保存长度为 10000 的整数。

所以,我利用我们小时候在学校里学到的所有简单加法的计算逻辑来制作这个程序。而且,我应该使用字符串来获取那些巨大的数字。

但有些结果是从零开始的。我知道为什么零会出现在那里,但我确实更喜欢得到类似“1234”的结果,而不是“01234”。顺便说一句,所有其他的东西都很完美。

我需要一个函数,它以字符串的形式获取输入,并删除以字符串开头的单个零(如果存在)。

你能代替我做吗?您可能应该考虑到我们将处理的字符串的长度可以小于或等于 10000。

标签: c

解决方案


也许是这样:

char * f( char * str )
{
    while ( *str == '0' && str[1] )
        str++; // skips all zero-s when it is not last character in string

    return str;
}

推荐阅读