A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//给一个字符串,含有空格分隔成若干个子字符串,类似于“aa  bbb cc”;
// 要求用C语言求最长的子字符串;
//解题思路
//1)定义一个含有空格的字符串
//2)定义一个计数器,计算空格的长度,没到遇到空格时,重置计数器
//3)同时记录最大长度,同时标记数组的下标
//4)用for循环循环字符串数组,当遇到'\0',结束
//5)打印最长字符串 其实位置为标记的下标减去最大长度

#include <stdio.h>

int main(int argc, const char * argv[]) {
    char arrlen[100]="adcdd ddddddd daa";//定义一个字符串数组
    int count=0;//计数器
    int Maxcount=0;//最大长度
    int j=0;//标记下标
    for (int i=0; arrlen!='\0'; i++) {
        if (arrlen!=' ') {//当数组元素不等于零的时候计数器自增
            count++;


            }
        else {
            if (count>Maxcount) {//取最大字符串长度
                Maxcount=count;
                j=i;}//标记下标
            count=0;//重置计数器

        }


    }

    for (int k=j-Maxcount; k<j; k++) {
        printf("%c",arrlen[k]);
    }
    printf("\n");

    return 0;
}
本题是根据自己思路做出来的,不知道大家有没有更好的方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马