更新以上程序 不要使用strtol
时间: 2024-02-26 15:56:55 浏览: 64
好的,以下是使用纯手写方法的 C 语言程序,实现将输入的 ASCII 码字符串转换为对应的十进制数字:
```c
#include <stdio.h>
#include <ctype.h>
int hexToInt(char c);
int main()
{
char s[100];
printf("请输入ASCII码字符串:");
fgets(s, sizeof(s), stdin); // 从标准输入读取一行字符串
int num = 0;
for (int i = 0; s[i] != '\0'; i++)
{
if (isspace(s[i]))
{
printf("%d ", num); // 输出结果数字
num = 0; // 清空 num,准备处理下一个部分
}
else if (s[i] == '0' && tolower(s[i + 1]) == 'x')
{
i += 2; // 跳过 "0x" 前缀
}
else if (isxdigit(s[i]))
{
num = num * 16 + hexToInt(s[i]); // 将16进制字符转换为整数,并累加到 num 中
}
}
printf("%d\n", num); // 输出最后一个结果数字
return 0;
}
int hexToInt(char c)
{
if (isdigit(c))
{
return c - '0';
}
else
{
return tolower(c) - 'a' + 10;
}
}
```
使用方法与之前的程序相同。
阅读全文