我有一个 char 数组LL,4014.84954
,我将其发送到如下示例的函数中:
#include <stdio.h>
#include <math.h>
void myFunction(char* in_string, char* out_string) {
printf("Start_String=%s\n", in_string);
int in_size = (int)(sizeof(in_string));
printf("%d\n", in_size);
int i = 0;
for(i = 0; i <= in_size-ceil(in_size/2); i++) {
out_string[i] = in_string[i];
}
}
int main(int arg) {
char in_string[] = "LL,4014.84954";
char out_string[] = "";
printf("In_String=%s\n", in_string);
myFunction(in_string, out_string);
printf("Out_String=%s\n", out_string);
}
我的问题有两个部分。
如何获取此 char 数组的长度?
int in_size = (int)(sizeof(in_string));
在这个例子中给了我 8 这是指针的大小(long int)。我知道我可以制作一个 for 循环,直到它看到空终止,但是有更好的方法吗?我以前使用 char[] 并且sizeof
效果很好,但现在我正在转换为 char*。我怎样才能将这些字符的一部分写入
out_string
. 我的示例当前将所有字符写入out_string
.
这是原始输出:
In_String=LL,4014.84954
Start_String=LL,4014.84954
8
Out_String=LL,40014.84954