【发布时间】:2021-12-20 18:52:52
【问题描述】:
我有一个包含数字的 char 数组。
char number[] = "12000000"
我需要有一个函数来插入每 3 位数的分隔符。喜欢:
char result[] = "12,000,000"
我的函数接受数字作为char pointer,它也需要以char pointer 的形式返回结果。
char* insert_divider(char* number) {
some magic;
return result;
}
我不知道如何使用指针。谢谢。
【问题讨论】:
-
字符串是如何终止的?数组是否足够大以容纳新字符串?
-
我尝试了很多方法,似乎它以 \0 终止。此数字数组最多为 14 位。
-
您通常不会插入到 C 样式的数组中。您只能重用已经存在的数组元素。您不能添加到元素的数量。您只能希望最后有一些未使用的,然后将已经使用的移动到它们之间以保留未使用的。这就是你要问的吗?还是你希望做添加元素的事情?
-
(1)使用
strlen计算输入长度,乘以2。(2)使用char *result = malloc(size)分配足够的内存(3)写一个for循环复制字符到result确保result以空值结尾。查看一些example 以开始使用。 -
试试这个
int len = strlen(input); for(int i = 0; i < len; i++) printf("%c", input[i]);。然后将字符插入result[i]。注意result不能是“数组”,因为该数组在函数返回时被销毁。它必须是一个指针,它的内存分配有malloc
标签: arrays c pointers arduino char