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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 嗨灬小凯 中级黑马   /  2015-4-20 13:00  /  589 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
main.m
测试试07
7、 在一个已知的字符串中查找最长单词,
假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
*/

# include <stdio.h>
# include <string.h>
# define LEN  1000
# define N   256
void f(char *s)
{
    int i = 0, j = 0, k = 0, t = 0;
    char str[N],ss[N];  //定义两个字符数组用来比较,
   
    for(i = 0; s[i]; i++)
    {
        if(' ' == s[i])    //
        {
            str[k] = '\0';
            if(' ' == str[0])
            {
                for(t = 0; str[t]; t++) //如果首位为空格,数组向左移
                {
                    str[t] = str[t+1];
                }
                str[t] = '\0';
            }
            if(strlen(str) > j)
            {
                strcpy(ss, str);
                j = (int)strlen(str);
            }
            strcpy(str,"");
            k = 0;
            i++;
        }
        str[k] = s[i];
        k++;
    }
    strcpy(s, ss);
}
int main(void)
{
   
    char s[LEN] = " apple  banana  黑马程序员  orange  ";
    f(s);
    printf("字符串中最长的单词是:%s\n", s);
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马