微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用strtol()将字符串值转换为long类型值

#include <stdio.h>
#include <stdlib.h>

#define LIM 30
char * s_gets(char * st, int n);

int main(){

    char number[LIM];
    char * end;
    long value;

    puts(Enter a number (empty line to quit):);
    while(s_gets(number, LIM) && number[0] != '\0')
    {
        value = strtol(number, &end, 10);  /* base 10 */
        printf(base 10 input, base 10 output: %ld, stopped at %s (%d)\n,value, end, *end);
        value = strtol(number, &end, 16);  /* base 16 */
        printf(base 16 input, base 10 output: %ld, stopped at %s (%d)\n,value, end, *end);
        puts(Next number:);
    }
    puts(Bye!\n);

    return 0;
}

char * s_gets(char * st, int n){
    char * ret_val;
    int i = 0;

    ret_val = fgets(st, n, stdin);
    if (ret_val)
    {
        while (st[i] != '\n' && st[i] != '\0')
            i++;
        if (st[i] == '\n')
            st[i] = '\0';
        else // must have words[i] == '\0'
            while (getchar() != '\n')
                continue;
    }
    return ret_val;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐