C语言字符串输入
菜鸟向大佬们请教#include<stdio.h>void ming_to_mi(char ming[],int count);
void mi_to_ming(char mi[], int count);
int main(){
int i, count;
char ming,mi;
for(i = 0; i < 2; i++){
if(i == 0){
printf("请输入需要加密的明文:");
gets(ming);
printf("请输入加密的偏移量:");
scanf("%d",&count);
printf("\n明文是:%s",ming);
ming_to_mi(ming,count);
}else if(i == 1) {
char flag;
printf("\n是否要进行解密算法?(y/n)");
scanf("%s",flag);
if(flag == 'y'){
printf("----------解密算法----------\n");
printf("请输入已知的密文为:");
scanf("%s",mi);
gets(mi);
printf("请输入加密时的偏移量:");
scanf("%d",&count);
printf("\n密文是:%s",mi);
mi_to_ming(mi,count);
}else
break;
}
}
}
void ming_to_mi(char ming[], int count){
char mi;
int i;
for(i = 0; i < 15; i++){
if(ming){
if(ming == ' ')
mi = ' ';
else
mi = ming+count;
}
else
break;
}
printf("\n转换后的密文是:%s",mi);
}
void mi_to_ming(char mi[], int count){
char ming;
int i;
for(i = 0; i < 15; i++){
if(mi){
if(mi == ' ')
ming = ' ';
else
ming = mi-count;
}else
break;
}
printf("\n原文是:%s",ming);
}
求凯撒密码的问题,为什么我的第二轮循环的gets()没有,被调用啊??直接就让我输偏移量?
我可以用scanf("%s",mi)输入,但是用gets(mi)就不行。 第22行的scanf是调试的时候用的...粘上来的时候忘记注释了 目测在scanf下面用getchar接收一下回车应该就可以了 getchar一下就行 苏紫方璇 发表于 2020-3-4 15:43
目测在scanf下面用getchar接收一下回车应该就可以了
感谢,已经解决了! 古月不傲 发表于 2020-3-4 17:11
getchar一下就行
谢谢,已经解决了!
页:
[1]