原题:字符串加密:将英文句子中所有个数为偶数的单词进行加密处理。加密规则为:若单词以a-n(不区分大小写)开头,则组成该单词的所有字母循环左移一次,若以o-z开头,循环右移一次。将加密后的串保存至文件。
例如:This is a desk.
加密为:sthi si a eskd.
//当文件路径不存在的时候
//当文件路径正确且有这个路径的时候
实现代码:
#include<stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
void wordchange(char str[])
{
int i,j,k,m;
char c;
for(i=0;str[i];i++)
{
for(j=i,k=i;isalpha(str[k]);k++)
{
if(isalpha(str[k+1])==0)
{
if((k+1-j)%2==0)
{
if(str[j]>='a'&&str[j]<='n'||str[j]>='A'&&str[j]<='N')
{
if(str[j]>='O'&&str[j]<='Z')
{
str[j]+=32;
}
c=str[j];
for(m=j;m<k;m++)
{
str[m]=str[m+1];
}
str[k]=c;
}
else if(str[j]>='o'&&str[j]<='z'||str[j]>='O'&&str[j]<='Z')
{
if(str[j]>='O'&&str[j]<='Z')
{
str[j]+=32;
}
c=str[k];
for(m=k;m>j;m--)
{
str[m]=str[m-1];
}
str[j]=c;
}
}
}
i=k+1;
}
}
}
void main()
{
FILE *fp;
char string[80]="This is a desk.";
wordchange(string);
puts(string);
fp=fopen("D:\\laomi\\laomi.txt","w");
if(fp == NULL)
{
printf("Cannot open file strike any key exit!");
exit(1);
}
while(1)
{
//字符串写入文件
fprintf(fp,"%s",string);
break;
}
fclose(fp);
}