题目描述:
给一串字符串,如果是“START”或者“END”则不处理,如果是“ENDOFINPUT”则退出,其他的翻译成每一个字母之前的第五个字母,输出。
题目类型:
字符串处理。
源代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char str[1000];
int i,len;
while(cin.getline(str,1000))
{
if(strcmp(str,"ENDOFINPUT")==0)
break;
if(strcmp(str,"START")!=0&&strcmp(str,"END")!=0)
{
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='F'&&str[i]<='Z')
printf("%c",str[i]-5);
else if(str[i]>='A'&&str[i]<='E')
printf("%c",str[i]-5+26);
else
printf("%c",str[i]);
}
printf("\n");
}
}
return 0;
}
这个是从网上借鉴的,大同小异。
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char a[27]="VWXYZABCDEFGHIJKLMNOPQRSTU";
char str[1000];
int i,len;
while(cin.getline(str,1000))
{
if(strcmp(str,"ENDOFINPUT")==0)
break;
if(strcmp(str,"START")!=0&&strcmp(str,"END")!=0)
{
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='A'&&str[i]<='Z')
printf("%c",a[str[i]-'A']);
else
printf("%c",str[i]);
}
printf("\n");
}
}
return 0;
}