/*
请编程序将:输入单词译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。
例如,字母”A”后面第4个字母是”E”,用”E”代替”A”,”Z”用”D”代替。例如,输入”China”应译为”Glmre”。
请编一程序,将输入单词译为密码后输出。
(回车结束单词输入;单词最长20,之后截断;输入单词长度为0或输入不为字母,输出error)。
*/
#include <stdio.h>
#include<string>
const int n=20;
void main()
{
char num[n];
int a;
gets(num);
a=strlen(num);
for(int b=0;b<a-1;b++)
{
num[b]=num[b]+4;
}
puts(num);
getchar();
}
刚接触c,帮看看怎么弄。
请编程序将:输入单词译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。
例如,字母”A”后面第4个字母是”E”,用”E”代替”A”,”Z”用”D”代替。例如,输入”China”应译为”Glmre”。
请编一程序,将输入单词译为密码后输出。
(回车结束单词输入;单词最长20,之后截断;输入单词长度为0或输入不为字母,输出error)。
*/
#include <stdio.h>
#include<string>
const int n=20;
void main()
{
char num[n];
int a;
gets(num);
a=strlen(num);
for(int b=0;b<a-1;b++)
{
num[b]=num[b]+4;
}
puts(num);
getchar();
}
刚接触c,帮看看怎么弄。
解决方案
20
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> //isalpha const int N = 21; int main(void) { char num[N]; gets(num); int a = strlen(num); if (a < 1) { printf("error\n"); return -1; } for (int b = 0; b < a; b++) // not a-1 { if (!isalpha(num[b])) { //not a-z or A-Z printf("error\n"); return -1; } num[b] = num[b] + 4; } puts(num); //pause getchar(); }