(1)要注意区分输入的是否含有“-”,即为正数还是负数
如果为负数,从第二位开始转换,并在转换后的数前面加上负号
(2)要注意代码 n = n * 10 + (s[i] - '0');中,不可以缺少“ - '0'”,否则结果输出不正确
#include <stdio.h>
int main()
{
char s[10];
long int n = 0;
int i = 0;
printf("Enter a string:\n");
gets(s);
if (s[0] == '-')
i++;//如果输入的含负号,则需要从第二位数开始转化
while (s[i] != '\0')
{
n = n * 10 + (s[i] - '0');
i++;
}
if (s[0] == '-')
n = -n;
printf("%ld\n", n);
return 0;
}