213421 发表于 2014-12-20 14:15:41

c语言之字符串加密与解密

#include <stdio.h>
#include <stdlib.h>

char JieMi(char c[])
{
        int i;
        printf("请输入:");
        scanf("%s",c);
        for (i=0;c!='\0';i++)
        {
                if ((c>='e'&&c<='z')||(c>='E'&&c<='Z'))
                        c -= 4;
                else if ((c>='a'&&c<='d')||(c>='A'&&c<='D'))
                        c +=22;
        }
        puts(c);
        return 0;
}

char JiaMi(char s[])
{
        int i;
        printf("请输入:");
        scanf("%s",s);
        for(i=0;s!='\0';i++)
        {
                if ((s>='a'&&s<='v')||(s>='A'&&s<='V'))
                        s += 4;
                else if ((s>='w'&&s<='z')||(s>='W'&&s<='Z'))
                        s -= 22;
        }
        puts(s);
        return 0;
}

int main()
{
        char JiaMi(char s);
        char JieMi(char c);
        int a;
        char s,c;
        printf("1-数据加密2-数据解密\n");
s : scanf("%d",&a);
        if (a==1)
        {
                JiaMi(s);
        }
        else if (a==2)
        {
                JieMi(c);
        }
        else
        {
                printf("请重新输入!\n");
                goto s;
        }
        system("pause");
        return 0;
}
小甲鱼老师,这个是一个加密字符串的c语言代码,但是在执行时,输入的字符串,例:fishc 123
他就只能输出空格前面的东西,遇到空格就直接结束那个循环了,求各位朋友指导~~谢谢~~~

牡丹花下死做鬼 发表于 2014-12-20 16:29:17

不要用%s输入

213421 发表于 2014-12-20 17:36:33

牡丹花下死做鬼 发表于 2014-12-20 16:29
不要用%s输入

那是用那个呢?gets()吗?

213421 发表于 2014-12-20 17:39:50

213421 发表于 2014-12-20 17:36
那是用那个呢?gets()吗?

用这个gets(),他会直接退出啦

牡丹花下死做鬼 发表于 2014-12-20 18:37:33

for example

#include<stdio.h>

void Encryption(char * str);

int main()
{
        char ch;
        char str;
        int i = 0;
        printf("Please Input a string(English and number):");
        while((ch = getchar())!='\n')
        {
                str = ch;
                i++;
        }
        str = '\0';

        Encryption(str);

        return 0;
}

void Encryption(char * str)
{
        int i = 0;
        char ch;
        while(*(str+i)!='\0')
        {
                ch = *(str+i)+5;
                printf("%c",ch);
                i++;
        }
        printf("\n");
}
页: [1]
查看完整版本: c语言之字符串加密与解密