查找字符串中最长子串,例如“I love OC”最长子串为“love”
1 void findMaxLengthSubstr1(char *src) 2 { 3 char *start = src; 4 char *end = src; 5 unsigned int maxLength = 0; 6 unsigned int tempLength = 0; 7 // 此处子串长度不能超过100 8 char maxStr[100] = "0"; 9 10 if (src == NULL) 11 { 12 return ; 13 } 14 while (*end != ‘\0‘) 15 { 16 while(*end != ‘ ‘) 17 { 18 // 到了字符串结尾处则也算是一个子串的结束必须跳出循环 19 if (*end == ‘\0‘) 20 { 21 break; 22 } 23 tempLength++; 24 end++; 25 } 26 27 // 判断空格之前单词长度是否大于记录的最大长度 28 if(maxLength < tempLength) 29 { 30 maxLength = tempLength; 31 // 只能存储长度小于100的 否则直接退出, 32 // 原则可以不支持,但必须保证程序没有异常不会挂机 33 if (maxLength < 100) 34 { 35 strncpy(maxStr,start,maxLength); 36 } 37 else 38 { 39 printf("The substr too length"); 40 return; 41 } 42 } 43 // 无论长度是否大于maxLength只要到了间隔符都要指向空格符的下一个位置重新统计 44 end++; 45 start = end; 46 // 临时长度记录值清空,记录下一个子 串的长度 47 tempLength = 0; 48 } 49 printf("maxstr %s\n",maxStr); 50 return ; 51 } 52
时间: 2024-10-14 00:31:13