黑马程序员技术交流社区

标题: 在一个已知的字符串中查找最长单词 [打印本页]

作者: cxl19900517    时间: 2015-6-15 20:21
标题: 在一个已知的字符串中查找最长单词

在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。

我自己写的 查找最长单词,不知道是不是符合要求
int main()
{

    char str[100] = "my name is CXL";

   
    int size = (int)strlen(str);

    int lengest = 0;
    int max = 0;
    int min = 0;
   
   
    for (int i = 0; i < size; i ++) {
        int j = 0;
        int min_mark = i;
        while (str != ' ' && str != '\0') {
            j ++;
            i ++;
        }
        int max_mark = i - 1;
        
        if (lengest < j) {
            lengest = j;
            min = min_mark;
            max = max_mark;
            
        }
    }
   
    for (int i = min; i <= max ; i ++) {
        
        
        printf("%c", str);
    }
    return 0;
}

作者: fanxing    时间: 2015-6-15 20:35
//其实不用那么多for循环
//在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。

#include "stdio.h"
#include "string.h"
int main(){
        char a[] = {"Heima is the best one"};
        int count = 0;
        int length = 0;
        int index = 0;
        int alength = strlen(a);
        for(int i = 0; i < alength; i++ ){
                if(a[i] != ' '){
                        count += 1;
                }
                if (count > length){
                        index = i - count - 1;
                        length = count;
                }else{
                        count = 0;
                }
        }
        for(int i = index; i <= length; i++){
        printf("%c", a[i]);
        }
        printf("字符个数:%d", length);
        return 0;
}

作者: zhanggaoyuan    时间: 2015-6-15 22:12
程序要先写伪代码(这样条理清晰)
作者: 李言    时间: 2015-6-15 23:10
试一下就OK喽,嘿嘿
作者: lipeng524824    时间: 2015-6-16 00:12
围观,学习,
作者: 银河雨    时间: 2015-6-16 22:14
楼上感觉不错哦
作者: xiaolongxia    时间: 2015-6-17 22:18
支持完再看。。。。
作者: 丁铭检    时间: 2015-6-17 22:47
这个貌似是基础测试题,我用的是指针算的。。
作者: 丁铭检    时间: 2015-6-17 22:49
  1. //在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
  2. #include <stdio.h>

  3. int main(int argc, const char * argv[]) {
  4.     char string[80],*p;
  5.     int i=0,max =0;
  6.     printf("please input a string:\n");
  7.     gets(string);
  8.     p = string;
  9.     while ( *p != '\0') {
  10.         if ( *p == ' ') {
  11.             if (max <= i)
  12.                 max =i;
  13.                 i =0;
  14.             }else
  15.                 i++;
  16.                 p++;
  17.         }
  18.         if (max <=i)
  19.             max =i;
  20.     printf("\n max_length of the string is :%d\n",max);
  21.     return 0;
  22. }
复制代码

作者: wqp123000    时间: 2015-10-7 14:27
强 谢谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2