编写程序,对输入的一行小写字母进行加密处理。加密方法为:每一字母用其ASCII码加1的字母替换,字母z用a替换。要求替换过程用函数过程实现,函数的头部为void encrypt(char *s)
时间: 2024-02-01 12:16:32 浏览: 121
以下是实现该函数的示例代码:
```c
#include <stdio.h>
void encrypt(char *s) {
while (*s) {
if (*s == 'z') {
*s = 'a';
} else {
*s = *s + 1;
}
s++;
}
}
int main() {
char str[100];
printf("请输入一行小写字母:");
fgets(str, 100, stdin);
encrypt(str);
printf("加密后的结果为:%s", str);
return 0;
}
```
该程序首先定义了一个名为 `encrypt` 的函数,该函数的参数为一个指向字符数组的指针。函数中使用了一个 while 循环来遍历整个字符串,对于每个字符,如果它是字母 z,则将其替换为字母 a,否则将其 ASCII 码加 1。最后,主函数中调用了该函数,并输出加密后的结果。注意,在输入字符串时使用了 fgets 函数,以避免输入超出字符串长度的问题。
相关问题
用C语言编写一个程序,对输入的一行小写字母进行加密处理,加密方法为:每一字母用其ASCII码加1的字母替换,字母z用a替换,要求替换过程用函数过程实现,函数的头部为void encrypt(char *s)
好的,下面是程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void encrypt(char *s);
int main() {
char s[100];
printf("请输入一行小写字母:");
fgets(s, sizeof(s), stdin);
encrypt(s);
printf("加密后的结果为:%s", s);
return 0;
}
void encrypt(char *s) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (s[i] >= 'a' && s[i] < 'z') {
s[i] = s[i] + 1;
} else if (s[i] == 'z') {
s[i] = 'a';
}
}
}
```
程序中,我们定义了一个 `encrypt` 函数,用来对输入的一行小写字母进行加密处理。函数中,我们利用了字符串的长度来进行循环,判断每一个字符,如果是小写字母且不是字母 z,就将其 ASCII 码加 1 后进行替换,如果是字母 z,则将其替换为字母 a。最后在 `main` 函数中调用 `encrypt` 函数,将加密后的结果输出。
(1)编写程序,对输入的一行小写字母进行加密处理。加密方法为:每一字母用其 ASCII 码加1的字母替换,字母 z 用 a 替换。要求替换过程用函数过程实现,函数的头部为 void encrypt ( char * s )。 (2)编写程序将整型数组 a 的元素按相反顺序存放。要求按相反顺序存放用函数过程实现,函数的头部为 void invert ( int * x , int n )。
(1) 代码如下:
```c
#include <stdio.h>
#include <string.h>
void encrypt(char *s);
int main() {
char s[100];
printf("请输入一行小写字母:");
fgets(s, 100, stdin);
encrypt(s);
printf("加密后的结果为:%s", s);
return 0;
}
void encrypt(char *s) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (s[i] == 'z') {
s[i] = 'a';
} else if (s[i] >= 'a' && s[i] < 'z') {
s[i]++;
}
}
}
```
这个程序中,我们先定义了一个 `encrypt` 函数,用于加密输入的一行小写字母。函数中用一个循环遍历整个字符串,对于每个字母,如果不是字母 z,就将其 ASCII 码加 1,然后替换原来的字母。如果是字母 z,则将其替换为字母 a。这个函数的参数是一个字符指针,指向要加密的字符串。
程序的主函数中,我们先定义了一个长度为 100 的字符数组 `s`,用于存放用户输入的一行小写字母。然后调用 `fgets` 函数从标准输入中读取这一行字母,并将其存入数组 `s` 中。接着调用 `encrypt` 函数对这一行字母进行加密,并输出加密后的结果。
(2) 代码如下:
```c
#include <stdio.h>
void invert(int *x, int n);
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = sizeof(a) / sizeof(a[0]);
printf("原数组:");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
invert(a, n);
printf("翻转后的数组:");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void invert(int *x, int n) {
int temp;
for (int i = 0; i < n / 2; i++) {
temp = x[i];
x[i] = x[n - i - 1];
x[n - i - 1] = temp;
}
}
```
这个程序中,我们先定义了一个 `invert` 函数,用于将整型数组 `a` 的元素按相反顺序存放。函数中用一个循环遍历数组的前一半,对于每个元素,将其与对应的相反位置的元素互换。注意,我们只需要循环数组的前一半,因为每次循环都会交换数组的两个元素,这样就可以将整个数组翻转过来。
程序的主函数中,我们先定义了一个整型数组 `a`,用于存放需要翻转的元素。然后输出原数组的内容,调用 `invert` 函数对数组进行翻转,并输出翻转后的数组内容。
阅读全文