问题:用C语言编写一个函数,实现将字符串型"±1234"转换成整数型±1234
其中,先判断字符串中的符号,负数时将flag置为-1,正数时省略符号与不省略符号都不影响flag为1的值,核心语句n = n * 10 + *p - '0';则将字符串中的字符数值从后往前依次拿出来转换成相应的整数,最后返回n与flag的乘积
总代码:
#include <stdio.h>
#include <string.h>
long fun(char* p)
{
long n = 0;
int flag = 1;
if (*p == '-')
{
p++; flag = -1;
}
else if (*p == '+')
p++;
while (*p != '\0')
{
n = n * 10 + *p - '0';
p++;
}
return n * flag;
}
void main()
{
char s[6];
long n;
printf("Enter a string:\n");
gets(s);
n = fun(s);
printf("%ld\n", n);
}
运行结果:
负数时:
正数时: