📅  最后修改于: 2023-12-03 15:30:15.219000             🧑  作者: Mango
这是一道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语言中处理字符串操作的问题。