webtonny 发表于 2008-4-27 21:27

一个C语言编程的题目。

用一个函数来实现将一行字符中最长的单词输出。要求主程序从标准输入设备读入一串字符,并将此字符串传递给该函数,函数处理后将最长的单词返回给主调函数。
比如What are you doing?

输出doing.

wangjie456258 发表于 2008-6-20 02:42

这个好难啊,下次我一定回一下程序上面来哦,目前水平不够哦。

lingluoz 发表于 2008-6-20 14:32

#include <stdio.h>

int word_len(char *s_word)
{
    int i_len=0;
    while (*s_word!=' '&&*s_word!=0) {
        i_len++;
        s_word++;
    }
    return i_len;
}

int main()
{
    char s_string[200];
    char *p=s_string-1; /*下面p=strchr(p+1,' ')保证开始的时候p指向
                        字符串第一个字符所以p=s_string-1*/
    char *p_current_longest=s_string;
    gets(s_string);
    do {
        p=strchr(p+1,' ');
        if (p!=NULL) {
            if (word_len(p_current_longest)<word_len(p+1))
                p_current_longest=p+1;
        }
    } while (p!=NULL);
    while (*p_current_longest!=' '&&*p_current_longest!=0) {
        putchar(*p_current_longest);
        p_current_longest++;
    }
    getchar();
    return 0;
}

页: [1]

编程论坛