题目背景
某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。
题目描述
蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 n 位形成的。z
的下一个字母是 a
,如此循环。他现在找到了移动前的原文字符串及 n,请你求出密码。
输入格式
第一行:n。第二行:未移动前的一串字母
输出格式
一行,是此蒟蒻的密码
输入输出样例
输入 | 输出 |
1 qwe | rxf |
代码
#include <stdio.h>
#include <string.h>
int main()
{
int n;
scanf("%d", &n);
char str[50];
scanf("%s", str);
//int length = sizeof(str) / sizeof(str[0]);
for (int i = 0; i <strlen(str); i++) {
if (str[i] + n > 'z')
{
str[i] = str[i] + n - 26;
}
else
{
str[i] = str[i] + n;
}
}
printf("%s", str);
return 0;
}
C语言提供了strlen()函数,用于求字符串的长度。
函数定义如下:int strlen (const char *s);
包含的头文件是:#include <string.h>
该函数就是求参数 s 指向字符串的长度。在介绍“数组”的这一章节中,讲解了字符串的定义。C语言规定,字符串必须以'\0'字符作为最后一个字符,表示字符串的结束字符,称为:字符串结束符。字符串结束符'\0'的ASCII是0数值。
原文链接:https://blog.csdn.net/feng19870412/article/details/117045848