从C中的char数组中提取字符

问题描述 投票:0回答:1

我试图从

char
数组中提取最后两个字符,但无法这样做。该数组将提供给我,但我无法控制它。我只知道数组的最后
n
位置是数字。在以下情况
n=2

char c[5] = "xyz45"
char d[2];
d[0] = c[3];
d[1] = c[4];
int e = atoi(d); 

显然所需的输出是

45
。有办法解决这个问题吗? (上面的方法是如何在 python 中执行此操作的代表性方法。我正在寻找一种优雅的方法来执行此操作。)

c char
1个回答
0
投票

这将按照您的要求进行。编译和测试的代码 - 请注意添加/编辑:

#include <stdio.h>
#include <stdlib.h> /* atoi() */

int main()
{
    char c[6] = "12345";  /* Size 6 -- provide room for terminating NUL*/
    char d[3];  /* Size 3 -- again, provide room for terminating NUL*/

    d[0] = c[3];
    d[1] = c[4];
    d[2] = '\0';  /* Add a teminating NUL (strings need this)*/

    printf("%d\n", atoi(d));  /* Output: "45" */
    
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.