- //声明一个字符串
 
 -         char* str = "Keep on going never give up";
 
 -         //声明一个数组,用来存放字符串的子字符串
 
 -         char* subStr[20];
 
 -         //声明一个数组,用来存放每个子字符串的长度
 
 -         int length[20];
 
 -         //说明子字符串的个数
 
 -         int subCount = 0;
 
 -         int i = 0;
 
 -         //j用来表明下一个子字符串的起始位置
 
 -         int j = i;
 
 -         //用来指向动态分配的空间
 
 -         char* temp;
 
 -         
 
 -         //遍历大字符串的所有元素。
 
 -         while (str[i] != '\0')
 
 -         {
 
 -             if(str[i] == ' ')
 
 -             {
 
 -                 //如果某个元素为空格的话,则获取相应的子字符串
 
 -                 temp = (char*)malloc((i - j + 1) * sizeof(char));
 
 -                 int count = 0;
 
 -                 for(int k = j; k<i; k++)
 
 -                 {
 
 -                     temp[count] = str[k];
 
 -                     //将子字符创放到子字符串数组中
 
 -                     subStr[subCount] = temp;
 
 -                     count++;
 
 -                 }
 
 -                 //字符串结束标识
 
 -                 temp[count] = '\0';
 
 -                 //将长度放到长度数组中
 
 -                 length[subCount] = count;
 
 -                 subCount++;
 
 -                 
 
 -                 //让j指向下一个子字符串的起始下标
 
 -                 j = i + 1;
 
 -             }
 
 -             i++;
 
 -         }
 
 -         
 
 -         //这是对结尾处的最后一个子串进行操作,步骤同前面一样
 
 -         temp = (char*)malloc((i - j + 1) * sizeof(char));
 
 -         int count = 0;
 
 -         for(int k = j; k<i; k++)
 
 -         {
 
 -             temp[count] = str[k];
 
 -             subStr[subCount] = temp;
 
 -             count++;
 
 -         }
 
 -         temp[count] = '\0';
 
 -         length[subCount] = count;
 
 -         subCount++;
 
 -         
 
 -         //计算出长度数组中至最大的元素
 
 -         int maxLength = length[0];
 
 -         for(int i = 0; i<subCount; i++)
 
 -         {
 
 -             if(maxLength < length[i])
 
 -             {
 
 -                 maxLength = length[i];
 
 -             }
 
 -             //打印子字符串数组和长度数组中的每一个元素,他们是相互对应的
 
 -             printf("%s, %i\n", subStr[i], length[i]);
 
 -         }
 
 -         //打印数组中长度最大的值
 
 -         printf("maxlength: %i\n", maxLength);
 
 -         
 
 -         //遍历子字符串数组,找到长度最长的子字符串,打印,可能是多个。。
 
 -         for(int i = 0; i<subCount; i++)
 
 -         {
 
 -             if(strlen(subStr[i]) == maxLength)
 
 -             {
 
 -                 printf("max long string : %s\n", subStr[i]);
 
 -             }
 
 -             //将对上的空间都释放掉。
 
 -             free(subStr[i]);
 
 -        
 
  复制代码 参考网上的代码,自己做的时候没有做出来 
 |   
        
 
    
    
    
     
 
 |