C - 大串中的最大串

标签 c string pointers

所以请告诉我,我将如何从 C 中的垃圾字符串中获取最大的连续字母字符串?这是一个例子:

char *s = "(2034HEY!!11   th[]thisiswhatwewant44";

会回来...

thisiswhatwewant

前几天我在测验中遇到了这个问题......它让我发疯(现在仍然)试图弄清楚!

更新:

我的错伙计们,我忘了包括这样一个事实,即允许您使用的唯一函数是 strlen 函数。从而使它变得更难......

最佳答案

Uae strtok() 将您的字符串拆分为标记,使用所有非字母字符作为分隔符,并找到最长的标记。

要找到最长的 token ,您需要为 token 组织一些存储空间 - 我会使用链表。

就这么简单。

编辑

好的,如果 strlen() 是唯一允许的函数,您可以首先找到源字符串的长度,然后遍历它并将所有非字母字符替换为 NULL - 基本上就是这样strtok() 可以。

然后您需要第二次遍历修改后的源字符串,一次推进一个标记,并使用 strlen() 找到最长的一个。

关于C - 大串中的最大串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1512899/

相关文章:

c - 用链表读取 C 中的输入

c - 在 C、Linux 中打印扩展 ASCII 字符

C++ 对数字字符串数组进行排序 - 比较函数不起作用

c# - 如何使用亚洲格式格式化钱

c - Linux 用户空间的高精度计时

c - 使用 c 对齐 32 位数据的有效方法是什么

javascript - 使用 RegExp 匹配括号中的数字然后递增它

c - 指向函数的双指针

c++ - 函数指针问题

c++ - 将字符串转换为 const char *