黑马程序员技术交流社区

标题: 怎么查找英文句子 最长的单词 [打印本页]

作者: dayuanzhang    时间: 2016-6-10 22:29
标题: 怎么查找英文句子 最长的单词
急求,一点思路都没
作者: 呵呵哒哒    时间: 2016-6-10 23:33
int main(int argc, const char * argv[]) {

   
    // 定义一个字符数组,用来接收控制台的输入
    char inputStr[100];
    printf("Please input a string:\n");
    // 接收控制台输入,scanf和gets,推荐gets
    gets(inputStr);
   
    // length表示字符串的长度
    int length = (int)strlen(inputStr);
    // 标志位,表示是否是上一个单词结束
    int isWord = 0;
   
    // 记录每个单词的长度
    int wordLength = 0;
    int maxLength = 0;
   
    for (int i = 0; i < length; i++) {
        char c = inputStr;
        
        // 是一个空格,空格表示上一个单词结束
        if (c == ' ') {
            isWord = 0;
        }
        // 说明开始了一个新的单词,处理单词首字母
        else if (!isWord) {
            // 标记为开始一个新的单词
            isWord = 1;
            
            // 开始计算当前单词的长度,把长度重置为0
            wordLength = 0;
            // 单词的首字母属于单词的一部分,所以长度+1
            wordLength++;
        }
        // 新单词中除了首字母之外的其它字符
        else if (isWord) {
            
            wordLength++;
            
            // 此处说明上一个单词已经结束了,可以拿到上一个单词的长度,和最大的长度进行比较
            if (wordLength > maxLength) {
                maxLength = wordLength;
            }

        }
    }
   
    printf("%d\n", maxLength);
   
    return 0;
}





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