2015-04-03 56 views
-1

我有一个IBM XL c程序,它调用一个传递结构的asm子例程。 asm程序也由COBOL和pl/1程序调用。 asm程序使用传递的结构的内容更新文件,但会忽略包含二进制零的字段。如何在c程序中设置(例如)一个10个字符串字段,以便在全部10个字节中包含x'00'(而不仅仅是字节位置1)?如何在c中设置10个字符串为二进制零?

是我知道的愚蠢问题。

+0

零是零,不管你怎么把它。 – 2015-04-03 15:07:23

+0

这会帮助你,如果你会告诉我们一些代码。 – EvilTeach 2015-04-03 15:14:34

+0

取决于字符零(x'F0')还是二进制零(x'00')我想用二进制零填充字符串。因此我的斗争。 – djacks 2015-04-03 16:22:58

回答

1

如何设置(比如)一个10字符字符串字段在C程序 在所有的10个字节包含'00' (不只是字节位置1)?

char a[10]; 
memset(a,0,sizeof(a)); 

我希望这就是你want.There其他简单的方法

char a[10] = ""; 
char a[10] = {0}; 
+0

我认为把字符零(十六进制'F0'),而不是二进制零十六进制'00'这是EBCDIC,因为它是主机.. – djacks 2015-04-03 16:17:05

+0

要更改memset从分配二进制零到EBCDIC(或ascii)字符零会这样做:'memset(a,'0',sizeof(a));'(注意引号)。换句话说:是的,Gopi的memset确实是二进制零。 – 2015-04-03 20:31:52

+0

是的。 – djacks 2015-04-04 15:51:09

相关问题