【发布时间】:2015-12-13 04:19:36
【问题描述】:
好的,我正在尝试编写一个代码,将输入的字符串中的字符替换为字母表中的下一个字符,并打印 26 次(所有字母都旋转)
我从 rot13 代码中获得了帮助,对其进行了一些修改,除了打印 26 次之外,它做了我想要的一切。我试图用 for 和 while 添加一个计数器,但我真的看起来很愚蠢,当然没有工作。
这是代码
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Please Enter The Secret Code\n");
int code;
while((code = getchar())) {
code = chariot(code);
putchar(code);
}
return 0;
}
int chariot(int code)
{
if('a' <= code && code <= 'z'){
return Chariot(code,'a');
} else if ('A' <= code && code <= 'Z') {
return Chariot(code, 'A');
} else {
return code;
}
}
int Chariot(int code, int newcode){
code = (((code-newcode)+1)%26)+newcode;
return code;
}
【问题讨论】:
-
不确定我理解你想要什么,但如果你的意思是 read in "cat" 然后打印 "dbu", "ecv" ..... "bzs" ,你应该改变首先读取整个字符串的代码,然后才在循环中对其所有字符运行 Chariot 函数 26 次,每次调用后打印结果。
-
您的输入是什么,您期望什么输出?给我们一些样品。
-
@ShvetChakra 我希望它像这样 aAzZ->bBaA->cCbB.......->zZaA 现在我在函数中添加了循环并使其正常工作,但我无法做到每一步都打印代码它只打印最后一步