如图 实验九两道C语言编程题,求大神给出完整代码解答,初学者表示能力有限,谢谢了!!急!!!
如图实验九两道C语言编程题,求大神给出完整代码解答,初学者表示能力有限,谢谢了!!急!!!要钱的勿扰谢谢...
如图 实验九两道C语言编程题,求大神给出完整代码解答,初学者表示能力有限,谢谢了!!急!!!要钱的勿扰谢谢
展开
展开全部
#include <stdio.h>
//计算字母和数字的个数并打印
void char_count(char* input, int size) {
int i = 0, j = 0;
for (char* p = input; p < input + size; ++p) {
if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z')) {
++i;
} else if (*p >= '0' && *p <= '9') {
++j;
}
}
printf("%.*s : letter=%d, number=%d\n", size, input, i, j);
}
//将数组左移一位并抛弃第一位的元素
void array_move(char* input, int count) {
for (char* p = input + 1; p < input + count; ++p) {
*(p - 1) = *p;
}
}
//删除数组中指定的值并返回数组长度
int array_delete(char* input, int size, char ch) {
int i = size;
for (char *p = input; p < input + size; ++p, --i) {
if (*p == ch) {
int len = array_delete(p + 1, --i, ch);
array_move(p, len + 1);
return size - i - 1 + len;
}
}
return size;
}
//主函数
int main(int argc, char *args[]) {
char buf[] = "1ab123cdefg81hij1klm812nopq7461";
char_count(buf, sizeof(buf) - 1);
int count = array_delete(buf, sizeof(buf) - 1, '1');
printf("%.*s\n", count, buf);
return 0;
}
更多追问追答
追问
这两道实验题是分开编程序的,你给的这个是把两个编到一起了吧?
分开编的话要怎么编呢😊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询