试编写一个有主程序和子程序结构的程序模块。 主程序:要求从键盘接收一串字符并存于字节数组TABLE中,显示字符CHAR出现的次数。 子程序:在以TABLE为首地址的字节数组中查找CHAR,统计出现的次数。
时间: 2024-04-29 17:24:08 浏览: 80
以下是一个可能的程序模块:
```
#include <stdio.h>
void count_char(char *table, char c);
int main() {
char table[100];
char c;
printf("Enter a string: ");
gets(table);
printf("Enter a character to count: ");
scanf("%c", &c);
count_char(table, c);
return 0;
}
void count_char(char *table, char c) {
int count = 0;
while (*table) {
if (*table == c) {
count++;
}
table++;
}
printf("The character '%c' appears %d times.\n", c, count);
}
```
在主程序中,我们首先定义了一个长度为100的字节数组TABLE。然后,用gets函数从键盘读取一串字符,并存储到TABLE中。接着,用scanf函数从键盘读取一个字符,存储到变量c中。最后,调用子程序count_char来统计c在TABLE中出现的次数,并输出结果。
在子程序count_char中,我们通过指针遍历TABLE数组,每当遇到一个等于c的字符时,就把计数器count加1。最后,输出结果。
需要注意的是,gets函数容易造成缓冲区溢出,不建议使用。在实际编程中,可以使用fgets函数代替。
阅读全文