c - 如何在不使用字符串库的情况下查找另一个字符数组中是否存在一个字符数组?

标签 c arrays character

我有两个 char 数组 char search_array[8]input_array[30] 我通过使用 获取字符>getchar,但我想在不使用字符串库的情况下查找输入数组中是否存在搜索数组。

示例:

搜索数组:你好

输入数组你好,你好

最佳答案

您需要一些字符串比较循环,例如您可以在 strcmpstrcspn 中找到的循环。这是假设您使用像 C 字符串这样的终端值;如果你使用一些长度字段,你需要对循环进行调整以清楚地说明这些。 以下是一些示例:

int strcmp(char const *x, char const *y) {
    while (*x && *x == *y) {
        x++;
        y++;
    }
    return ((unsigned)*x > (unsigned)*y) - ((unsigned)*x < (unsigned)*y);
}

size_t strcspn(char const *x, char const *y) {
    char const *x_ = x;
    while (*x_) {
        for (char const *y_ = y; *y_; y_++) {
            if (*x_ == *y_)
                return x_ - x;
        }
        x_++;
    }
    return x_ - x;
}

关于c - 如何在不使用字符串库的情况下查找另一个字符数组中是否存在一个字符数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55531946/

相关文章:

character-encoding - 是否有必要在 XHTML 或 HTML5 中使用——并且——?

c - 我写下要扫描的第一个数字,按回车键后,它会在 Windows 中显示 'not responding' 消息

从汇编代码调用库中的 C 函数

php - 我的 $_SESSION 变量只获取数组中每个索引的第一个字母

从函数 c 返回二维数组的正确方法

在 C 中创建一个字符串数组失败,为什么?

Python - 无法重命名文件名中包含特殊字符的文件

java - JavaFX 中带有 sleep 的 Settext

android - 如何在进程之间将文件描述符传递给 Ashmem

c - 如何在C中生成唯一的ID