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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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

我自己写的 查找最长单词,不知道是不是符合要求
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;
}

9 个回复

倒序浏览

回帖奖励 +1

//其实不用那么多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;
}
回复 使用道具 举报 1 0
程序要先写伪代码(这样条理清晰)
回复 使用道具 举报
试一下就OK喽,嘿嘿
回复 使用道具 举报
lipeng524824 来自手机 中级黑马 2015-6-16 00:12:52
报纸
围观,学习,
回复 使用道具 举报

回帖奖励 +1

楼上感觉不错哦
回复 使用道具 举报
支持完再看。。。。
回复 使用道具 举报
这个貌似是基础测试题,我用的是指针算的。。
回复 使用道具 举报

回帖奖励 +1

  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. }
复制代码
回复 使用道具 举报
强 谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马