用C语言编写代码,实现如下功能 //1.定义一个长度为20的数组 2.分别用scanf的%c形式,%s形式输入多个字符 3.用gets函数输入多个字符 4.分别用printf的c形式和%s形式输出刚刚输入的多个字符 5.用puts输出刚刚输入的多个字符
时间: 2024-11-27 22:12:34 浏览: 37
在C语言中,你可以按照以下步骤来实现这个功能:
```c
#include <stdio.h>
#include <string.h> // 需要用到gets函数
#define ARRAY_LENGTH 20
int main() {
char array[ARRAY_LENGTH];
// 1. 使用 %c 输入单个字符
printf("请输入字符(最多20个):");
for (int i = 0; i < ARRAY_LENGTH && getchar(); i++) { // getchar() 消耗掉输入流中的换行符
scanf("%c", &array[i]);
}
// 2. 使用 %s 输入字符串
printf("\n请输入字符串(最多19个字符):");
fgets(array + strlen(array), ARRAY_LENGTH - strlen(array), stdin); // fgets 会保留换行符
// 3. 使用 gets 输入字符串(注意:gets有安全风险,现代C标准推荐使用fgets)
// gets(array);
// 4. 使用 %c 和 %s 输出字符和字符串
printf("输入的字符:");
for (int i = 0; i < strlen(array); i++) {
printf("%c ", array[i]); // %c 形式
}
printf("\n");
printf("输入的字符串:");
printf("%s\n", array); // %s 形式
// 5. 使用 puts 输出字符串
puts(array);
return 0;
}
```
在这个程序中,需要注意的是`gets`函数的安全性问题,因为它可能导致缓冲区溢出,所以在实际编码中,应使用`fgets`替代。此外,由于`fgets`会在结束符前停止读取,所以当你用它输入字符串时,需要确保有足够的空间保存换行符。
阅读全文