我们可以遍历字符串中的每个字符,并通过运算将其转换为整数。具体地,我们可以使用ASCII码表,将字符的ASCII码值减去字符'0'的ASCII码值,得到该字符代表的数字,并将其累加到结果中。需要注意的是,如果字符串开头有正负号,我们需要先判断正负号,并根据情况对结果进行正负取反。
以下是示例代码:
#include
int strToInt(char* str) {
int result = 0;
int sign = 1;
if (*str == '-') {
sign = -1;
str++;
} else if (*str == '+') {
str++;
}
while (*str != '\0') {
int digit = *str - '0';
if (digit < 0 || digit > 9) {
break;
}
result = result * 10 + digit;
str++;
}
return result * sign;
}
int main() {
char str1[] = "123";
char str2[] = "-456";
int num1 = strToInt(str1);
int num2 = strToInt(str2);
printf("%d\n", num1); // output: 123
printf("%d\n", num2); // output: -456
return 0;
}