【问题标题】:Populate int array with a char array full of numbers in C (char array to int array)用 C 中充满数字的 char 数组填充 int 数组(char 数组到 int 数组)
【发布时间】:2011-04-27 05:14:12
【问题描述】:

My Char 数组允许用户输入纯数字字符串,从而将每个数字存储在其自己的数组空间中。我需要将 char 数组的每个元素分配给 int 数组中的相应位置。我如何存储实际数字而不是 ASCII 等价物

例如。如果我输入 9 作为字符串,我不想要 57(ASCII 值)而是数字 9。

int main()   
{

    int x[256] = {0};
    int y[256] = {0};

    char temp1[256] = {0};
    char temp2[256] = {0};

    char sum[256] = {0};
    printf("Please enter a number: ");
    scanf("%s", &temp1); 

    printf("Please enter second number: ");
    scanf("%s", &temp2);

    for(i=0; i<256; i++)
    {
        x[i] = ((int)temp1[i]);
        y[i] = ((int)temp2[i]);         
    }

【问题讨论】:

    标签: c arrays char int


    【解决方案1】:

    变化:

        x[i] = ((int)temp1[i]);
        y[i] = ((int)temp2[i]);         
    

    到:

        x[i] = temp1[i] - '0';
        y[i] = temp2[i] - '0';         
    

    请注意,您还需要修复您的 scanf 调用 - 更改:

    printf("Please enter a number: ");
    scanf("%s", &temp1); 
    
    printf("Please enter second number: ");
    scanf("%s", &temp2);
    

    到:

    printf("Please enter a number: ");
    scanf("%s", temp1); 
    
    printf("Please enter second number: ");
    scanf("%s", temp2);
    

    【讨论】:

    • 太棒了,为什么我们需要从字符中减去“0”?顺便说一句,解决了它,谢谢
    • 哦,我知道原因了。当我们将 char 9 存储到字符串中时,它将其存储为 ASCII 57,减去 char 0(ASCII 48)将得到 '9',然后该值存储在整数中。再次感谢!
    【解决方案2】:
    int main(void) {
    int x = 0;
    int y = 0 
    char input[12] = {0}; --->initialize var input 
    
    
    scanf("%s", &input[0]);
    int ch_len = strlen(input)/sizeof(char); --create length of input[] array
    int digit[ch_len];    --->initialize digit which size is how many character in input[] array
    fflush(stdin);
    
    while (input[y] != '\0') {
    if (isdigit(input[y])) {
        digit[x++] = input[y++]-'0';
        count++;
    }
    else y++;
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多