上面的fgets(s, sizeof(s), stdin); // 获取用户输入 这个能换成用scanf()函数吗?怎么换呢
时间: 2024-02-15 17:02:06 浏览: 101
c语言获取用户输入字符串是scanf和gets的区别详解
5星 · 资源好评率100%
是的,可以使用 `scanf()` 函数来获取用户输入。下面是使用 `scanf()` 函数修改后的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 加密函数,将输入的一行小写字母进行加密处理
void encrypt(char *s);
int main() {
char s[100];
printf("请输入一行小写字母:");
scanf("%s", s); // 使用 scanf() 函数获取用户输入
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') { // 如果是小写字母且不是字母 z
s[i] = s[i] + 1; // 将其 ASCII 码加 1 后进行替换
} else if (s[i] == 'z') { // 如果是字母 z
s[i] = 'a'; // 将其替换为字母 a
}
}
}
```
使用 `scanf()` 函数时,需要将格式控制字符串设置为 `"%s"`,并且将输入的字符串存储到 `s` 数组中。该函数会自动在字符串末尾添加一个空字符 '\0'。注意,使用 `scanf()` 函数获取字符串时,有可能会导致缓冲区溢出的问题,因此需要保证输入的字符串长度不超过 `s` 数组的大小。
阅读全文