- #include<stdio.h>
- #include<string.h>
- #define MAX 24
- int TEST(char ch[MAX])/*判断输入的注册码是否符合要求*/
- {
- int i=0,k=0,j=0;
- while(ch[i]>64&&ch[i]<91||
- ch[i]>96&&ch[i]<123||
- ch[i]==' ')
- {
- if(ch[i]>64&&ch[i]<91||
- ch[i]>96&&ch[i]<123)
- {
- k++;
- i++;
- }
- else if(ch[i]==' ')
- {
- j++;
- if(k%4==0) /*格式必须是:xxxx xxxx xxxx */
- i++;
- else
- break;
- }
- }
- if(k%4==0&&j==(k/4)-1) /*判断是否格式错误,如是否多输入了空格符*/
- return 1;
- else
- return 0;
- }
- void TRANS(char ch[MAX]) /*转换注册码*/
- {
- int i,j;
- i=strlen(ch);
- for(j=0;j<i;j++)
- {
- if(ch[j]>64&&ch[j]<91||
- ch[j]>96&&ch[j]<123)
- { if(ch[j]>86&&ch[j]<91||ch[j]>118&&ch[j]<123)
- ch[j]-=ch[j]/30;
- else
- ch[j]+=ch[j]/30;
- }
- }
- }
- main(void)
- {
- char ch[MAX];
- int a;
- l1: printf("请输入注册码,格式:abSD WqhJ (20个字符长度以内,且全为字母)\\n");
- gets(ch);
- a=TEST(ch);
- if(a)
- {
- TRANS(ch);
- printf("转换后密码为:\\n");
- printf("%s",ch);
- printf("\\n");
- }
- else
- {
- printf("注册码输入错误!\\n");
- goto l1;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/041120136895.html
来源: http://www.codesnippet.cn/detail/041120136895.html