输入
数字(ASCII码➕数字个)
字符(ASCII码)
输出
ASCII码➕数字个后分别对应的新ASCII码
(比如122的z➕6之后是33的!)
(这里ASCII码范围是32到126)
例
输入
10
[bbe"uMehbZv
输出
Hello, World!
代码仅供参考,谢谢!
#include<stdio.h>
#define N 10240
int putskeywords(const char *str, int num)
{
int tmp;
int intIndex[95];
for(int i=32,j=0;i<127;i++,j++)
{
intIndex[j]=i;
}
for (int i = 0; str[i] != '\0' && str[i] != '\n'; i++)
{
tmp = str[i] + num;
if (tmp > 31 && tmp < 127)
{
fprintf(stdout, "%c", tmp);
}
else if(tmp>126)
{
fprintf(stdout, "%c", intIndex[(tmp-32) % 95]);
}
else
{
fprintf(stdout,"输入的字符序列超出范围!\n");
}
}
return 0;
}
int main()
{
int n;
scanf("%d", &n);
getchar();
char str[N];
puts("\n原字符序列:");
fgets(str, sizeof(str) - 1, stdin);
puts("\n处理后字符序列:");
putskeywords(str, n);
return 0;
}
#include<stdio.h>
int main()
{
int n, i;
scanf("%d", &n);
getchar();
char c[1024];
gets(c);
for (i = 0; c[i]; i++)
printf("%c", c[i]+n);
return 0;
}
解答如下
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
getchar();
char t;
while((t=getchar())!='\n')
putchar(t+n);
return 0;
}