用c语言编写程序,从键盘输入一串字符给数组1,要求将其复制到数组2并输出,复制要求是:如果是数字 字符改为‘#’,否则原样复制,例如输入ab%&c12A34,则输出的应是:ab%&c##A##。
时间: 2024-02-17 20:03:48 浏览: 63
可以使用以下的代码实现需求:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 100
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
int i = 0, j = 0;
printf("请输入一串字符:");
fgets(str1, MAX_LEN, stdin);
while (str1[i] != '\0') {
if (isdigit(str1[i])) {
str2[j] = '#';
} else {
str2[j] = str1[i];
}
i++;
j++;
}
str2[j] = '\0';
printf("复制后的结果为:%s\n", str2);
return 0;
}
```
代码解析:
1. 定义了两个字符串数组 `str1` 和 `str2`,用于存储输入和复制后的结果。
2. `fgets()` 函数从标准输入(键盘)读取一行字符串并存储到 `str1` 数组中。
3. 使用 `isdigit()` 函数判断 `str1` 中的字符是否为数字,如果是则将其替换为 `#`,否则将其复制到 `str2` 中。
4. 最后将 `str2` 数组输出即可。
注意,在代码中使用了 `fgets()` 函数读取输入,这是因为 `gets()` 函数已经被标记为不安全函数,不推荐使用。另外,定义了 `MAX_LEN` 常量,用于限制输入字符的最大长度,防止输入过多导致数组溢出。
阅读全文