小编Jas*_*son的帖子

使用二分查找查找已排序字符串中的第一个大写字母

我编写了以下代码来使用二进制搜索查找字符串中的第一个大写字母:

char first_capital(const char str[], int n)
{
    int begin = 0;
    int end = n - 1;
    int mid;
    while (begin <= end)
    {
        mid = (begin + end) / 2;
        if (mid == 0 && isupper(str[mid]))
        {
            return mid;
        }
        else if (mid > 0 && isupper(str[mid]) && islower(str[mid - 1]))
        {
            return mid;
        }
        if (islower(str[mid]))
        {
            begin = mid + 1;
        }
        else
        {
            end = mid - 1;
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

目前我的代码在测试时没有按预期工作。如果有人能提到我哪里出错了,那会很有帮助。

注意:输入字符串将已经排序(所有小写字母都出现在大写字母之前)。 …

c c-strings char uppercase function-definition

4
推荐指数
1
解决办法
160
查看次数

标签 统计

c ×1

c-strings ×1

char ×1

function-definition ×1

uppercase ×1