得到数量从一个数组,并分配到一个INT [英] Get to number from an array and assign to one int

查看:155
本文介绍了得到数量从一个数组,并分配到一个INT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的工作我的功课,并试图获得两个字符,这是由例如数组 ABC10DEF

I'm working on my homework and trying to get two characters which are numbers from an array for example ABC10DEF

我想获得 10 ,并将其存储在一个 INT 键入

I want to get 10 and store it in an int type.

            number_holder_1 = back[3] - '0';
            number_holder_2 = back[4] - '0';

            number = number_holder_1 * 10 + number_holder_2;

这不工作,我不知道为什么。

This doesn't work I don't know why.

当我打印出来 number_holder_1 的值,它显示 1 ,当我显示 number_holder_2 显示它 0 但是当我打印数量它只是显示 0

When I print out the value of number_holder_1 it does display 1 and when I display number_holder_2 it display 0 but when I print number it just display 0

我不知道怎么办。

更新:

数量 number_holder_1 number_holder_2 的定义为 INT 键入

称为数组,持有 ABC10DEF 从主传递。

the array called back that holding ABC10DEF is passing from the main.

推荐答案

这似乎是一个执行错误,因为用你给的东西,有一些更好的变量名,它的工作。

It appears to be an implementation mistake, because using what you have given, with some better variable names, it does work.

#include <stdio.h>
#include <ctype.h>

int letter2int(char c) {
    int n;
    if (isdigit(c)) {
        n = c - '0';
    } else {
        n = -1; /* error */
    }

    /* for debugging */
    printf("For character '%c' we get number '%d'.\n", c, n);

    return n;
}

int main(int argc, char** argv) {
    const char str[] = "ABC10DEF";
    int tens, ones;
    int result;

    tens = letter2int(str[3]);
    ones = letter2int(str[4]);

    result = tens * 10 + ones;

    printf("Result: %d\n", result);

    return 0;
}

这可以推广到要么形成atoi函数(ASCII为整数)或使用循环和字符提取发生在一个字符串(任何非数字字符终止)的第一个数字在字符串指针指数 STR

This can be generalized to either form a atoi function (ASCII to integer) or extract the first number that occurs in a string (terminated by any non-digit character) by using a loop and a char pointer to index over the string str.

使用 I 作为从零开始的索引,结果+ =数量*(INT)POW(10,I);

Using i as the zero-based index, result += number * (int)pow(10, i);.

这篇关于得到数量从一个数组,并分配到一个INT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆