C程序确定没有 'e'或 'E'的char数组中的最大子串

标签 c string string-length longest-substring

我遇到了标题中所述的问题。此处有更多详细信息。

我的问题是:

a) 开发一个 C 函数,它获取一个 char 数组作为输入参数,并确定此 char 数组中没有 'e' 'E' 的最大子字符串。打印该子串的长度。

b) 编写 main 函数来测试 a) 函数。使用 scanf("%[^\n]",...) 或使用 getchar()

循环

例如:输入:“你是一个。” .output:“你是” 长度:6

最佳答案

如果您使用字符串库函数 strtok,解决方案非常简单。使用此函数,它会为您拉出子字符串,然后您只需跟踪最长的一个即可。

temp = strtok(input, "eE");
strcpy(best, temp);
bestLen = strlen(best);

while(temp = strtok(NULL, "eE")) {
    if(strlen(temp) > bestLen) {
        strcpy(best, temp);
        bestLen = strlen(best);
    }
}
printf("%s", best);

每次出现 e 或 E 时,strtok 都会拆分您的字符串,并将其返回到您的临时指针中。然后您可以查看临时值,看看它是否足够长以成为新的最佳长度。

关于C程序确定没有 'e'或 'E'的char数组中的最大子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246436/

相关文章:

c - 显示使用 asprintf 创建的时间字符串

arrays - 另一个数组中字符串长度的数组

python - 如何根据列中元素的数量从 Pandas 数据框中删除一行

Java 字符串长度函数显示不正确的值

mysql - 如何通过 C 连接到 SQL?

arrays - Swift - 将版本数组排序为字符串

c - OpenGL 截取背景屏幕截图而不是执行

c++ - C++中的字符串连接问题

c++ - 如何在设备内存中有效地随机播放数据?

c - 堆中的路径花费的时间太长