
给定一行字符串,获取其中最长单词。
比如:给定一行字符串: hello wo shi xiao xiao su
输出:hello

“打擂台算法”,具体内容小伙伴们可以参考前面的内容。
- char* MaxWord(const char* str)
- {
- int len = strlen(str);
- char* curstr = (char*)malloc((len + 1) * sizeof(char));
- char* maxstr = (char*)malloc((len + 1) * sizeof(char));
- assert(curstr != NULL && maxstr != NULL);
- if (curstr == NULL || maxstr == NULL)
- return NULL;
- int cur = 0;//当前字符串的长度
- int max = 0;//最长字符串的长度
- for (int i = 0; str[i] != '\0'; i++)
- {
- if (isalpha(str[i]))//是字母,是单词的一部分
- {
- curstr[cur++] = str[i];
- }
- else //当前是非字母,前面的单词提取结束
- {
- if (cur > max)//需要更新数据
- {
- curstr[cur] = '\0';//把curstr变成字符串
- max = cur;
- strcpy(maxstr, curstr);
- }
- cur = 0; //为下次提取单词做准备
- }
- }
- if (cur > max)
- {
- curstr[cur] = '\0';//把curstr变成字符串
- max = cur;
- strcpy(maxstr, curstr);
- }
- free(curstr);
- return maxstr;
- }
- int main()
- {
- char* p = MaxWord("add adfert afda rtert ddffxadf");
- printf("%s\n", p);
- free(p);
- return 0;
- }

创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。
欢迎各位帅哥美女点赞👍评论⭐收藏⭐,谢谢!!!
如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。
祝各位生活愉快⭐