追梦少年_66 发表于 2017-11-13 15:51

菜鸟学C之第二题

每天两题,先易后难,
期待菜鸟,共同进步,
期待高手,指点指点

/************************************************************************/
/* 2.        有一长度不大于40的字符串,已知其中包含两个字符“A”,
求处于这两个字符“A”中间的字符个数,并把这些字符依次打印出来                                                                     */
/************************************************************************/
#include<stdio.h>
#include<stdlib.h>

void main() {

        char str = "adsAkkldsaocoxsad213Aff";

        char *p = str;
        while (*p != 'A') {//理解了指针so easy
                p++;
        }
        p++;
        int num = 0;
        while (*p != 'A') {
                putchar(*p);
                num++;
                p++;
        }
        printf("\nnum=%d", num);
        getchar();
}


Holoo 发表于 2017-11-22 22:52

找出两个大写的A然后利用下标算出字符个数和输出中间的字符。

11111011100 发表于 2017-11-13 16:25

kkldsaocoxsad213
16
**************************
①第一个循环,指针指向A时跳出循环,p++就到了k.
②当指针指向字符为A时跳出循环,也就是到第二个A时,putchar输出了kkldsaocoxsad213,num数就是这个串的字符数.

mis2015 发表于 2017-11-13 16:02

菜鸟不会,菜鸟太笨。

追梦少年_66 发表于 2017-11-13 16:24

mis2015 发表于 2017-11-13 16:02
菜鸟不会,菜鸟太笨。


只要有梦想,再迟都不怕。
只要够流氓,再难都不怕。

vr4u 发表于 2017-11-13 18:39

题干看不懂
A123.。。36,37,38A

是这样吗?

追梦少年_66 发表于 2017-11-13 21:36

vr4u 发表于 2017-11-13 18:39
题干看不懂
A123.。。36,37,38A



对,就是有一个字符串,你不知道他具体是什么。如果你都知道了是什么,就不用编程实现了

poiugh岁月 发表于 2017-11-13 21:51

楼主不妨试试这个: 自定义输入一个字符串判断字符串中是否有两个及以上重复字符若有请列出所有相邻重复字符之间字符个数

追梦少年_66 发表于 2017-11-13 23:21

poiugh岁月 发表于 2017-11-13 21:51
楼主不妨试试这个: 自定义输入一个字符串判断字符串中是否有两个及以上重复字符若有请列出所有相邻重 ...

兄弟猛,明天试试

追梦少年_66 发表于 2017-11-14 10:55

poiugh岁月 发表于 2017-11-13 21:51
楼主不妨试试这个: 自定义输入一个字符串判断字符串中是否有两个及以上重复字符若有请列出所有相邻重 ...

/************************************************************************/
/* 自定义输入一个字符串判断字符串中是否有两个及以上重复字符若有请列出所有相邻重复字符之间字符个数                                                               */
/************************************************************************/
//输入:a123a1324abg1gb
//输出:
//元素a重复, 第1次相邻重复字符之间字符个数为3
//元素1重复, 第1次相邻重复字符之间字符个数为3
//元素2重复, 第1次相邻重复字符之间字符个数为4
//元素3重复, 第1次相邻重复字符之间字符个数为2
//元素a重复, 第2次相邻重复字符之间字符个数为4
//元素1重复, 第2次相邻重复字符之间字符个数为6
//元素b重复, 第1次相邻重复字符之间字符个数为3
//元素g重复, 第1次相邻重复字符之间字符个数为1

#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {

        char str = { 0 };
        scanf("%s", str); //输入字符串,赋值给str

        char str2 = { 0 };//缓冲区
        int length = strlen(str);//字符串长度
        for (int i = 0; i <length-1;i++) {
                int cnt = 0,num = -1;
                for (int j = i+1; j < length; j++) {//将每一个字符与其后面的字符比较,如果相等,判断其在缓冲区的个数将字符存入缓冲区
                        if(str==str){
                                while (str2[++num]) {
                                        if (str2 == str) {
                                        cnt++;
                                        }
                                }
                                str2 = str;
                                printf("元素%c重复,第%d次相邻重复字符之间字符个数为%d\n", str,cnt+1,j-i-1);//j-i-1为两个相同字符之间的个数
                                break;
                        }
                }

        }
        printf("%s", str2);
        system("pause");
}

追梦少年_66 发表于 2017-11-15 21:39

asip2001 发表于 2017-11-15 21:08
学来学去还是在做题,不是在编程

haha,求指教
页: [1] 2
查看完整版本: 菜鸟学C之第二题