输入一个数字,然后将每个数字放入数组中,我已经将其转换为字符串,以便可以将其放入数组中,但是当我使用强制转换将其重新设置为int时,我得到了ascii数字。 。
#include <stdio.h>
#include <stdlib.h>
int main(){
char num_str[64] = {0};
int num, cifra;
printf("Write a number: \n");
scanf("%d", &num);
int len = snprintf(num_str, 64, "%d", num);
printf("The length is %d\n", len);
for(int i = 0; i < len; i++) {
cifra = (int)(num_str[i]);
printf("%d \n", cifra);
}
return 0;
}
最佳答案
将其从char
转换为int
测试字符的数字并减去'0'
。
for(int i = 0; i < len; i++) {
int cifra = num_str[i];
if (cifra >= '0' && cifra <= '9') printf("%d\n", cifra - '0');
else printf("%c\n", cifra); // such as '-'
}