//给一个字符串,含有空格分隔成若干个子字符串,类似于“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; } 本题是根据自己思路做出来的,不知道大家有没有更好的方法
|