代码之家  ›  专栏  ›  技术社区  ›  methuselah

根据键长度打印列中的值

c
  •  0
  • methuselah  · 技术社区  · 4 年前

    我有以下代码,希望它根据我的密钥长度在列中打印出plainText和cipherText。

    例如,在下面的示例中,密钥长度为7,因此我希望它以7列的形式打印结果。

    int main(){
      char* text = "The quick brown fox jumps over the lazy dog";
      char* key = "pangram";
      char* cipherText = Encipher(text, key, '-');
      char* plainText = Decipher(cipherText, key);
      printf("\nKey = %s",key );
      printf("\nPlain text = %s",plainText);
      printf("\nEncipher = %s",cipherText);
      printf("\n");
    }
    

    所以结果可能看起来像这样,但 The quick brown fox jumps over the lazy dog :

    a t t a c k p 
    o s t p o n e 
    d u n t i l t 
    w o a m x y z
    

    我的完整代码可以在这里找到: https://repl.it/repls/ShoddyPiercingDemos .

    0 回复  |  直到 4 年前
        1
  •  1
  •   Waqar Andrew Tomazos    4 年前

    您可以使用 strlen() 计算长度 key cipherText 然后使用一个简单的循环来打印这些值。

    把这个放在你的末尾 main() 查看结果:

      size_t keylen = strlen(key);
      size_t cipherLen = strlen(cipherText);
    
      for (size_t i = 0; i < cipherLen; i++) {
        if (i % (keylen - 1) == 0)
          printf("%c\n", cipherText[i]);
        printf("%c ", cipherText[i]);
      }
    

    输出:

    h k   m r a -
    - u o   o e d
    d -   b o s t
    t y - i w j v
    v   o - e   f
    f p   z - T c
    c n u e l g q
    q r x   h   -
    -