已知其中包含两个字符“A”,求处于这两个字符“A”中间的字符个数,并把这些字符依次打印出来。

一、 作业要求

作业由两部分构成:源程序文件+程序设计说明文档,要求独立完成,雷同代码不得分,大作业题库见群文件。

程序功能要求:

1, 程序功能不限(能编译运行10分)

2, 必须包含顺序结构、选择分支结构、循环结构(20分)

3, 必须包含数组(20分)

4, 必须包含一个以上的函数(20分)

5, 可以包含指针(20分)

6, 可以包含结构体(10分)

1.编程序求 5X+2Y+Z=50 的所有非负整数解。
2.有一长度不大于40的字符串,已知其中包含两个字符“A”,求处于这两个字符“A”中间的字符个数,并把这些字符依次打印出来。
3.把25个字母A、B 、C、··· 、X、Y按如下要求打印出来:从最中间的字母M开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。
   要求:初始化时按字母表顺序赋值。

求答案

#include <stdio.h>
#include <stdlib.h>
char a[40],b[40];int n=0; //1.定义字符数组a[40],b[40],计数器n=0;
/*用户自定义函数 */
void myfun() {
    int i;
 
    for (i=0;i<40;i++) if (a[i]=='A') break; //3.定位第一个字符’A’的位置;
    if (i>=40) {printf("error1\n");exit(1);}
    i++;
    while (1) { //4.从’A’的后一个字符开始为字符数组b赋值,同时计数器加一,直到遇到第二个字符’A’;
        if (a[i]=='A') break;
        if (a[i]=='\n') {printf("error2\n");exit(2);}
        b[n]=a[i];
        n++;
        i++;
    }
    b[n]=0; //5.修正字符数组b;
}
int main() {
    fgets(a,40,stdin); //2.接收字符数组a;
    myfun();
    printf("b:[%s],n:%d\n",b,n); //6.输出字符数组b和计数器n。
    return 0;
}
//123A456A789
//b:[456],n:3
//

 

可以用string函数进行判断 第一个a,和第二个a的位置,然后substring获取出来。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632