鱼C论坛

 找回密码
 立即注册
查看: 735|回复: 3

[已解决]关于C语言密匙短语的题目{没有思路}

[复制链接]
发表于 2020-5-30 11:03:42 | 显示全部楼层 |阅读模式
2鱼币
本帖最后由 你的strl键没了 于 2020-5-30 11:06 编辑

1.怎么做到删除重复的字母和空格,我大概知道用strcmp进行比较,但不知道怎么删除
2.怎么排序修改完的字母数组
3.怎么做到后面添加未出现的字母
4.怎么匹配大小写问题
最佳答案
2020-5-30 11:03:43
去重:用一个字符数组存放用户的密码,初始化内部填0,每次存放之前遍历数组查看是否已有存在的字符;无则加之。
换码则按照相关的映射关系,采取查表法;
大小写通过ASCII码可以判断的
QQ截图20200530105705.png

最佳答案

查看完整内容

去重:用一个字符数组存放用户的密码,初始化内部填0,每次存放之前遍历数组查看是否已有存在的字符;无则加之。 换码则按照相关的映射关系,采取查表法; 大小写通过ASCII码可以判断的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-30 11:03:43 | 显示全部楼层    本楼为最佳答案   
去重:用一个字符数组存放用户的密码,初始化内部填0,每次存放之前遍历数组查看是否已有存在的字符;无则加之。
换码则按照相关的映射关系,采取查表法;
大小写通过ASCII码可以判断的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-30 14:50:50 | 显示全部楼层
提问的最佳奖励都有3鱼币了,2个鱼币的悬赏不如不悬赏。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-30 15:27:28 | 显示全部楼层
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void change1(char *str1, char *str2);
void change2(char *str, char *str2, char *str3);
void duizhaobiao(char *str2, char *str3, char *contrast);
void change3(char *mingwen, char *upper_mingwen);
void change4(char *upper_mingwen,char *contrast, char *anwen);
void change5(char *anwen, char *true_anwen, char *mingwen);
int main()
{
        char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
        char str1[50];//原密码
        char str2[50];//去掉空格和重复数字的密码
        char str3[50];//未出现的字母 
        char contrast[50]; 
        char mingwen[50];
        char upper_mingwen[50];
        char anwen[50]; 
        char true_anwen[50];
        printf("请输入密钥字(key word):");
        gets(str1); 
        change1(str1,str2);
        puts(str2);
        change2(str,str2,str3);
        puts(str3);
        duizhaobiao(str2,str3,contrast);
        puts(contrast);
        printf("请输入明文:");
        gets(mingwen);
        change3(mingwen,upper_mingwen); 
        puts(upper_mingwen);
        change4(upper_mingwen, contrast, anwen);
        puts(anwen);
        change5(anwen, true_anwen, mingwen);
        printf("正在生成暗文中...\n");
        puts(true_anwen);
        return 0;
}
void change1(char *str1, char *str2)
{
        int str1_length=50;
        int i,j;
        for(i=0;i<str1_length;i++){
                for(j=0;j<str1_length;j++){
                        if(str1[i]==str1[j]&&i!=j){
                                str1[j]=' ';
                        }
                }
        }
        int cnt=0;
        for(i=0;i<str1_length;i++){
                if(str1[i]!=' '){
                str2[cnt]=str1[i];
                cnt++;
                }
                
        }
        str2[cnt]='\0';
}
void change2(char *str, char *str2, char *str3)
{
        
        int i,j; 
        int k=0;
        for(i=0;i<27;i++){
                for(j=0;str2[j]!='\0';j++){
                        if(str2[j]==str[i]){
                                i++;
                        }
                }
                str3[k]=str[i]; k++;
        }
}
void duizhaobiao(char *str2, char *str3, char *contrast)
{
        int i,j;
        for(i=0;str2[i]!='\0';i++){
                contrast[i]=str2[i];
        }
        for(j=0;str3[j]!='\0';j++,i++){
                contrast[i]=str3[j]; 
        }
        str3[i]='\0';
}
void change3(char *mingwen, char *upper_mingwen)
{
        int i,j;
        for(i=0;mingwen[i]!='\0';i++){
                if(mingwen[i]>='a'&&mingwen[i]<='z'){
                        upper_mingwen[i]=mingwen[i]-32;
                }else{
                        upper_mingwen[i]=mingwen[i];
                }
        }
}
void change4(char *upper_mingwen,char *contrast, char *anwen)
{
        int i,j,k;int t=0;
        for(i=0;upper_mingwen[i]!='\0';i++){
                t=upper_mingwen[i];
                t=t-65;
                anwen[i]=contrast[t];
        }        
        anwen[i]='\0';
}
void change5(char *anwen, char *true_anwen, char *mingwen)
{
        int i;
        for(i=0;mingwen[i]!='\0';i++){
                if(mingwen[i]>='a'&&mingwen[i]<='z'){
                        true_anwen[i]=tolower(anwen[i]);
                }else{
                        true_anwen[i]=anwen[i];
                }
        }
        true_anwen[i]='\0';
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 17:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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