黑马程序员技术交流社区

标题: 【分享】【源代码】输出一句话中最长的单词 [打印本页]

作者: FengLinHuoShan    时间: 2015-11-20 21:37
标题: 【分享】【源代码】输出一句话中最长的单词
本帖最后由 FengLinHuoShan 于 2015-11-20 21:39 编辑

#include <stdio.h>
#include <string.h>

int main(){
    //
    printf("请输入一句话:\n");
    //定义数组a,使用gets()函数接收一句话放到数组a中
    char a[100];
    gets(a);
    int len = strlen(a);//定义变量len接收这句话中总共有几个字母
    char *s[100];
    int count = 0;
    *s = a;
    for (int i=0; i<len; i++) {//循环如果碰到空格count加1,并将空格换成\0————count表示单词的个数,
        if (a==' ') {
            count++;
            a='\0';
            s[count]=&a[i+1];//把每一个单词的首地址放到指针数组中
        }
    }
    char *max = s[0];
    for (int i=0; i<=count; i++) {//循环遍历指针数组,求出最长单词并输出
        if (strlen(max)<strlen(s)) {
            max = s;
        }
    }
    printf("最长单词是%s",max);
}

作者: FengLinHuoShan    时间: 2015-11-20 21:49
这个大家估计用的到,黑马基础测试的题目,有更好的思路吗?
作者: IPswhatb“is”    时间: 2015-11-20 23:15
指针那段没有看懂
作者: 唐阿丽    时间: 2015-11-21 11:45
支持一下
作者: black747521    时间: 2015-11-21 14:28
和我写的差不多,但是如果有多个最长的字符串,你只能输出一个。这是我的源码,仅供参考http://bbs.itheima.com/thread-258491-1-1.html
作者: cbl16888    时间: 2015-11-21 21:38
支持一下来了,顺带学习
作者: 荣荣    时间: 2015-11-22 08:42
#import <Foundation/Foundation.h>
char str0[100];
int max=0;

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //输入一个字符串
        NSLog(@"请输入一个字符串:");
        gets(str0);

        NSString *str = [NSString stringWithFormat:@"%s",str0];

        NSLog(@"您数入的字符串:%@",str);

        //将字符串准换成数组
        NSArray *arr = [str componentsSeparatedByString:@" "];

        //找出数组的最大长度
        for (int i = 0; i<arr.count; i++)
        {
            max = (max>(int)[arr length])?max:(int)[arr length];
        }

        //将所以最大长度的元素输出
        for (int i = 0; i<arr.count; i++)
        {
            if ((int)[arr length]==max)
            {
                NSLog(@"最大长度的字符串为:%@,长度为%d",arr,max);
            }
        }
    }
    return 0;
}


作者: ToBeJeek1    时间: 2015-11-22 13:41
楼主的代码有bug,输入hello! my name is geekeringer!这串字符串时,代码给出的结果是:最长单词是hello!,这明显不对,希望楼主能够改善,我会试着帮您改改
作者: FengLinHuoShan    时间: 2015-11-24 21:42
ToBeJeek1 发表于 2015-11-22 13:41
楼主的代码有bug,输入hello! my name is geekeringer!这串字符串时,代码给出的结果是:最长单词是hello!, ...

兄弟 我运行没有错误啊发达
作者: FengLinHuoShan    时间: 2015-11-24 21:44
black747521 发表于 2015-11-21 14:28
和我写的差不多,但是如果有多个最长的字符串,你只能输出一个。这是我的源码,仅供参考http://bbs.itheima ...

兄弟 你的技术分好多啊 能给我几个吗??你懂的!!嘿嘿




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