我有一個字符數組LL,4014.84954
我發送到一個函數如下例所示:查找尺寸和複印部輸出的char * C
#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)。我知道我可以創建一個循環,直到它看到空終止,但有沒有更好的方法?我以前使用char []和sizeof
偉大的工程,但現在我轉換爲char *。如何將這些字符的一部分寫入
out_string
。我的例子當前寫入所有字符到out_string
。
這裏是原始輸出:
In_String=LL,4014.84954
Start_String=LL,4014.84954
8
Out_String=LL,40014.84954
使用'sizeof()'a *指針*可能不會幫助你的原因。您可能想要查看下面的答案以及[這個問題/答案](http://stackoverflow.com/questions/720077/calculating-size-of-an-array)。 – WhozCraig 2013-03-23 19:21:55
什麼部分的字符?如果它只是從一個設定的偏移量到最後,它非常簡單。 – teppic 2013-03-23 19:29:32