在C语言中,将数字字符串转换成整数的一个常用方法是使用strtol函数,该函数定义在stdlib.h头文件中。但如果你想要自己实现这个功能而不使用标准库函数,你可以通过遍历字符串并逐位计算整数值来完成。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
// 函数声明
int stringToInt(const char* str);
int main() {
char str[] = "12345";
int num = stringToInt(str);
printf("The integer is: %d\n", num);
return 0;
}
// 函数定义
int stringToInt(const char* str) {
int num = 0; // 初始化整数为0
int len = strlen(str); // 获取字符串长度
// 遍历字符串
for (int i = 0; i < len; i++) {
// 检查字符是否为数字
if (str[i] < '0' || str[i] > '9') {
printf("Invalid input. Only digits are allowed.\n");
return -1; // 如果发现非数字字符,返回-1表示错误
}
// 将当前字符转换为整数并累加到num上
// 注意:str[i] - '0' 是将字符转换为对应数字的常用技巧
num = num * 10 + (str[i] - '0');
}
return num;
}