当前位置: 代码迷 >> C语言 >> 一个C语言编程的题目。
  详细解决方案

一个C语言编程的题目。

热度:173   发布时间:2008-04-27 21:27:55.0
一个C语言编程的题目。
用一个函数来实现将一行字符中最长的单词输出。要求主程序从标准输入设备读入一串字符,并将此字符串传递给该函数,函数处理后将最长的单词返回给主调函数。
比如What are you doing?

输出doing.
搜索更多相关的解决方案: C语言  函数  doing  字符  

----------------解决方案--------------------------------------------------------
这个好难啊,下次我一定回一下程序上面来哦,目前水平不够哦。
----------------解决方案--------------------------------------------------------
#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;
}
----------------解决方案--------------------------------------------------------
  相关解决方案