关于C语言密匙短语的题目{没有思路}
本帖最后由 你的strl键没了 于 2020-5-30 11:06 编辑1.怎么做到删除重复的字母和空格,我大概知道用strcmp进行比较,但不知道怎么删除
2.怎么排序修改完的字母数组
3.怎么做到后面添加未出现的字母
4.怎么匹配大小写问题 去重:用一个字符数组存放用户的密码,初始化内部填0,每次存放之前遍历数组查看是否已有存在的字符;无则加之。
换码则按照相关的映射关系,采取查表法;
大小写通过ASCII码可以判断的 提问的最佳奖励都有3鱼币了,2个鱼币的悬赏不如不悬赏。 #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;//原密码
char str2;//去掉空格和重复数字的密码
char str3;//未出现的字母
char contrast;
char mingwen;
char upper_mingwen;
char anwen;
char true_anwen;
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==str1&&i!=j){
str1=' ';
}
}
}
int cnt=0;
for(i=0;i<str1_length;i++){
if(str1!=' '){
str2=str1;
cnt++;
}
}
str2='\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!='\0';j++){
if(str2==str){
i++;
}
}
str3=str; k++;
}
}
void duizhaobiao(char *str2, char *str3, char *contrast)
{
int i,j;
for(i=0;str2!='\0';i++){
contrast=str2;
}
for(j=0;str3!='\0';j++,i++){
contrast=str3;
}
str3='\0';
}
void change3(char *mingwen, char *upper_mingwen)
{
int i,j;
for(i=0;mingwen!='\0';i++){
if(mingwen>='a'&&mingwen<='z'){
upper_mingwen=mingwen-32;
}else{
upper_mingwen=mingwen;
}
}
}
void change4(char *upper_mingwen,char *contrast, char *anwen)
{
int i,j,k;int t=0;
for(i=0;upper_mingwen!='\0';i++){
t=upper_mingwen;
t=t-65;
anwen=contrast;
}
anwen='\0';
}
void change5(char *anwen, char *true_anwen, char *mingwen)
{
int i;
for(i=0;mingwen!='\0';i++){
if(mingwen>='a'&&mingwen<='z'){
true_anwen=tolower(anwen);
}else{
true_anwen=anwen;
}
}
true_anwen='\0';
}
页:
[1]