gpt4 book ai didi

c - C中交换字母的加密

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:39 25 4
gpt4 key购买 nike

我需要编写一个程序,从输入中读取一个以新行结尾的句子。该程序应该以字母“a”与“z”、“b”与“y”等交换的方式编写句子的加密。我不应该使用数组,这就是我找不到解决此问题的原因。

这是我的代码:

#include<stdio.h>

int main() {
char alphabet, temp;
while( scanf("%c", &alphabet) != '\n') {
for(char i ='a', j='z'; i <= 'z', j>='a'; i++, j--) {
if(alphabet == i) {
temp = j;
}
}
printf("%c", temp);
}
return 0;
}

当我输入:abc 作为输出时,我得到 zyxxxxxxxxxxxxxxxxxxxxxxxxx(无限数量的 x)。

总结一下:输入:abc。输出:zyxxxxx(无限数量的x)。

最佳答案

你弄乱了 scanf 的返回值:

while( scanf("%c", &alphabet) != '\n'){

当输入的字符(在 alphabet 中)是一个换行符时,您想停止循环。但是您测试了 scanf 的返回值,它永远不会是 '\n',因为它返回转换字段的数量。

你可以这样尝试:

while( scanf("%c", &alphabet) == 1 && alphabet != '\n'){

关于c - C中交换字母的加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com