要求用c语言实现字符串转换位整型数据,如:字符串"-123456"转换为整型数据:-123456
#include <stdio.h>
int my_atoi(const char *str)
{
int value = 0;
int flag = 1;
/* 跳过负号 */
if (*str == '-')
{
flag = -1; // 标记为负数
str++;
}
/* 跳过正号 */
if (*str == '+')
str++;
/* 转换 */
for(; *str != '\0'; str++)
{
if (*str < '0' || *str > '9') // 超出0~9的字符,说明有非法字符,提前结束循环
break;
value = value*10 + (*str - '0');
}
return (value * flag);
}
int main(void)
{
int value1, value2, value3;
value1 = my_atoi("-123456");
value2 = my_atoi("+654321");
value3 = my_atoi("-123-456");
printf("value1 = %d\n", value1);
printf("value2 = %d\n", value2);
printf("value3 = %d\n", value3);
return 0;
}
输出结果如下: