千家信息网

C语言中怎么将字符串转换为一个整数

发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,这期内容当中小编将会给大家带来有关C语言中怎么将字符串转换为一个整数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 题目函数:fun()功能:将字符串转换为一个整
千家信息网最后更新 2025年01月30日C语言中怎么将字符串转换为一个整数

这期内容当中小编将会给大家带来有关C语言中怎么将字符串转换为一个整数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。


1 题目

函数:fun()

功能:将字符串转换为一个整数

描述:

【不能使用C语言提供的字符串函数】

输入:字符串"-1234"

输出:整型 -1234

2 思路

思路:将字符串每个位置的字符进行对应的ASCII码转换

例如:字符 '0'-'9' 对应的十进制整数是48~57,那么,将对应的整数减去48就得到了对应的整数

二进制十进制十六进制字符
0011 000048300
0011 000149311
0011 001050322
0011 001151333
0011 010052344
0011 010153355
0011 011054366
0011 011155377
0011 100056388
0011 100157399

3 代码

#include #include/**函数:fun()功能:将字符串转换为一个整数描述:【不能使用C语言提供的字符串函数】输入:字符串"-1234"输出:整型 -1234**/long fun(char *p) {    int r = 0;        //数字个数    long res = 0L;    // 转化后的数字    int pos = 1;        // 位数*10 *100 ...    int size = strlen(p);     // 字符串长度    if (p[0] == '-'){        r = size - 1;    } else {        r = size;    }    // 从前往后转换的话,需要分情况去计算。即:不是负数的话从p[0] 和 如果是负数的话需要从p[1]开始    // 所以,可以从后往前计算,循环次数是 r     for (int i = 0; i < r; ++i) {        res += (p[size-1-i]-48)*pos;        pos *= 10;    }    return p[0]=='-'?-res:res; }int main(int argc, char const *argv[]) {    char s[6];    printf("Enter a string: ");    gets(s);    long res = fun(s);        printf("Convert Result: %ld\n", res);    return 0;}

示例结果:

$ gcc ex1.c -o demo$ ./demoEnter a string: -1234Convert Result: -1234$ ./demoEnter a string: 9089Convert Result: 9089

上述就是小编为大家分享的C语言中怎么将字符串转换为一个整数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0