请阅读【嵌入式开发学习必备专栏 】
文章目录
-
- 字符数字转整形函数 atoi
-
- atoi 简单实现
字符数字转整形函数 atoi
在 C 语言中,main
函数能够接收命令行参数。这些参数通过两个参数传递给 main
函数:int argc
和 char *argv[]
。argc
是命令行参数的数量,argv
是参数的数组,其中 argv[0]
是程序的名称,argv[1]
到 argv[argc-1]
是命令行传递的参数。
如果你想要接收三个参数并将它们作为数字字符串转换为整数,你可以这样写 main
函数:
#include
#include
int main(int argc, char *argv[])
{
if (argc != 4) { // 程序名称 + 3 个参数
printf("Usage: %s num1 num2 num3n", argv[0]);
return 1;
}
// 将参数字符串转换为整数
int num1 = atoi(argv[1]);
int num2 = atoi(argv[2]);
int num3 = atoi(argv[3]);
// 使用转换后的整数
printf("The numbers are: %d, %d, %dn", num1, num2, num3);
// 你的逻辑代码...
return 0;
}
在这个示例中,atoi
函数被用来将命令行参数(字符串)转换为整数。请注意 atoi
函数不会报告数字字符串转换失败的情况,如果传入的字符串不是有效的数字表示,它将返回 0
。如果你需要更健壮的错误检查,请使用 strtol
或 sscanf
等函数代替。
编译并运行这个程序,你可以这样调用它:
./your_program 123 456 789
这里,your_program
是你的可执行文件的名称,123
, 456
, 789
是你传递给程序的三个数字字符串参数。程序将输出:
The numbers are: 123, 456, 789
确保你的程序能够处理非数字字符串的情况,如果需要,可以添加适当的错误检查。
atoi 简单实现
atoi
(ASCII to Integer)是一个将字符串转换为整数的 C 语言标准库函数。以下是 atoi
函数的一个简单实现,它模拟了标准库函数的基本行为:
#include
#include
int my_atoi服务器托管网(const char *str) {
int result = 0;
int sign = 1;
// 跳过前面的空白字符
while (isspace((unsigned char)*str)) {
str++;
}
// 检查正负号
if (*str == '-') {
sign = -1;
str++;
} else if (*str == '+') {
str++;
}
// 转换数字部分
while (isdigit((unsigned char)*str)) {
result = result * 10 + (*str - '0');
str++;
}
return sign * result;
}
int main() {
char str[] = " -12345";
int val = my_atoi(str);
printf("%dn"服务器托管网, val);
return 0;
}
在这个实现中,my_atoi
函数首先跳过任何空白字符,然后检查一个可选的正负号。接着,它开始处理字符串中的数字字符,将每个字符转换为对应的数字并加到结果中。一旦遇到非数字字符,就停止处理。
这个简单的实现不处理溢出,也不处理非法输入字符串(如包含非数字字符的字符串)。标准的 atoi
函数通常会有更复杂的错误检查和行为,以处理各种边界情况和溢出。如果需要处理溢出,通常会使用 strtol
或 strtoll
函数,它们提供了额外的错误检查功能。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
作为世界模拟器的视频生成模型 我们探索视频数据生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和图像潜在代码的时空补丁进行操作的变压器架构。我们最大的模型 Sora 能够生成一分钟的高保真…