如何将数组中的特定int值更改为C中的char ?

  • 本文关键字:中的 char int 数组 arrays c
  • 更新时间 :
  • 英文 :


如何将数组中的整数值更改为C中的字符值?例如:我想把数组中所有的0都变成点。所以如果我的数组有{1,2,0,0,0,0,2,1,0},它应该变成{1,2,.,.,.,2,1,.}。提前谢谢。

如果你的数组是这样的:

char arr[] = {'1', '2', '0', '3', ''};
// or like this:
char arr[] = "1203";

那么你可以使用一个循环将'0'替换为'.':

for (size_t i = 0; arr[i] != ''; i += 1) {
if (arr[i] == '0') {
arr[i] = '.';
}
}

然而,如果你的数组看起来像这样:

int arr[] = { 1, 2, 0, 3 };

那么不能用点代替零,因为点是一个字符而不是一个数字(dot有一个数字表示,即:'.',但它将被视为int,因此不作为点打印)。

在这种情况下,为了打印点而不是零,必须干预打印功能。例如:

int arr[] = { 1, 2, 0, 3 };
size_t arrlen = sizeof(arr) / sizeof(arr[0]); // size_t arrlen = 4;
// this code will print: 12.3 (replacing 0 with .)
for (size_t i = 0; i < arrlen; i += 1) {
if (arr[i] == 0) {
printf(".");
}
else {
printf("%d", arr[i]);
}
}
printf("n");

最新更新