2012-02-01 169 views
0

我正在实现一个原始块密码。然而,这种实现使得密文的大小可能不同于明文的大小。我需要知道如何计算编码后形成的密文的大小。 strlen(char *)将不起作用,因为密文可能包含多个'\ n'字符。有没有解决这个问题?确定c中位块的大小

+1

strlen与嵌入式'\ n'没有问题。你的意思是嵌入'\ 0'字符吗? – 2012-02-01 17:22:03

+1

我不明白 - 如果你正在执行密码,你怎么能不知道输出块有多大?如果你的意思是'我如何解析解码块',你将不得不实现一些协议来包装块。 – 2012-02-01 17:24:18

回答

2

您的编码函数应该返回大小,它是知道它的唯一实体。 实现一个单独的函数来“找出大小”意味着重新实现算法的一半。

所以,如果在你的编码功能,你有这样的事情:

while (...) 
    buf[i++] = stuff; 

您应该返回i

+0

唯一的,唯一的好答案... – Bart 2012-02-01 17:45:21