📜  C测验– 105 |问题5(1)

📅  最后修改于: 2023-12-03 15:30:15.219000             🧑  作者: Mango

C测验– 105 |问题5

这是一道C语言编程问题。在该问题中,你需要编写一段代码来查找给定字符串中的最长单词的长度。你可以假定该字符串只包含字母和空格。这个问题不需要注意大小写,也就是说,两个具有相同字母但不同大小写的单词应该被视为相同的单词。

以下是一个示例输入和输出:

输入:

"This is a test string"

输出:

5

解释:最长单词为“string”,长度为5。

你可以使用C语言中的字符串操作函数,如“strtok”、“strcpy”和“strlen”,来解决这个问题。需要注意的是,在使用“strtok”时,你需要在函数调用之前使用“NULL”将上一次调用的位置作为参数传递,直到返回“NULL”。

以下是一个解决该问题的代码示例:

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

int main()
{
    char s[] = "This is a test string";
    char *p, *t;
    int max_len = 0, len;

    // 分解字符串,并找到最长的单词
    p = strtok(s, " ");
    while(p != NULL) {
        len = strlen(p);
        if (len > max_len) {
            max_len = len;
            t = p;
        }
        p = strtok(NULL, " ");
    }

    printf("%d\n", max_len);

    return 0;
}

在这个代码示例中,我们首先定义了一个输入字符串“s”,一个指针“p”和一个整数“max_len”,用于记录最长单词的长度。我们使用“strtok”函数将输入字符串分解为单个单词,并在每次迭代中计算单词的长度。如果单词的长度大于“max_len”,我们就将其替换为“max_len”,并在指针“t”中保存该单词的指针。在循环结束时,我们输出最长单词的长度。

该代码示例可以通过这个测试问题,并提供了一个良好的基础,以便您可以在C语言中处理字符串操作的问题。