LL,4014.84954
この例のような関数に送信するchar配列があります。
#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);
}
私の質問は2つの部分に分かれています。
このchar配列の長さを取得するにはどうすればよいですか?
int in_size = (int)(sizeof(in_string));
この例では、ポインターのサイズ(long int)である8が得られます。ヌル終了が表示されるまで進行するforループを作成できることはわかっていますが、もっと良い方法はありますか?以前はchar[]を使用していてsizeof
うまく機能していましたが、現在はchar*に変換しています。これらの文字の一部をに書き込むにはどうすればよいですか
out_string
。私の例では、現在すべての文字をに書き込みますout_string
。
生の出力は次のとおりです。
In_String=LL,4014.84954
Start_String=LL,4014.84954
8
Out_String=LL,40014.84954