吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1125|回复: 5
收起左侧

[已解决] C语言字符串输入

[复制链接]
Oceanus 发表于 2020-3-4 13:51
菜鸟向大佬们请教
[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[15],mi[15];
	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[1];
			printf("\n是否要进行解密算法?(y/n)");
			scanf("%s",flag); 
			if(flag[0] == '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[15];
	int i;
	for(i = 0; i < 15; i++){
		if(ming[i]){
			if(ming[i] == ' ')
				mi[i] = ' ';
			else
				mi[i] = ming[i]+count;
		}
		else
			break;
	}
	printf("\n转换后的密文是:%s",mi);
}
void mi_to_ming(char mi[], int count){
	char ming[15];
	int i;
	for(i = 0; i < 15; i++){
		if(mi[i]){
			if(mi[i] == ' ')
				ming[i] = ' ';
			else
				ming[i] = mi[i]-count;
		}else
			break;
	}
	printf("\n原文是:%s",ming);
}

求凯撒密码的问题,为什么我的第二轮循环的gets()没有,被调用啊??直接就让我输偏移量?
我可以用scanf("%s",mi)输入,但是用gets(mi)就不行。

没有让输入mi

没有让输入mi

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Oceanus 发表于 2020-3-4 13:55
第22行的scanf是调试的时候用的...粘上来的时候忘记注释了
苏紫方璇 发表于 2020-3-4 15:43
目测在scanf下面用getchar接收一下回车应该就可以了
古月不傲 发表于 2020-3-4 17:11
 楼主| Oceanus 发表于 2020-3-5 12:02
苏紫方璇 发表于 2020-3-4 15:43
目测在scanf下面用getchar接收一下回车应该就可以了

感谢,已经解决了!
 楼主| Oceanus 发表于 2020-3-5 12:02

谢谢,已经解决了!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 20:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表