在字符串中查找字符数组

共1个回答, 标签: c

我已经写了一些代码, 我相信是非常接近的答案的问题, 但我似乎不能正确地比较两个字符, 我不知道如何正确地转换它们。

我知道如何使用数组来执行此操作, 但我想知道如何使用指针来执行此操作。

char *FindToken(char *s,char *t)
{
    while (s)
    {
        //char check = *(char*)s; tried this but it doesn't work
        while(t)
        {
            if (strcmp(s,t)){
                //return s;
                printf("%s", s);
            }
                (t++);
        }
            s++;
        }
    return NULL;
}

这是最初的问题。

编写一个调用的 C 函数, 该函数接受 2 个参数: 一个空终止字符数组 (字符串) S , 用于引用要搜索的字符串, 另一个字符串参数调用 t 。该字符串 t 是一个字符 (不包括 "\ 0") 的列表, 这些字符是标记, 或要在其中搜索的字符 s 。不要修改或 s t 。它将返回一个字符指针, t 指向在中找到的第一个字符 s 的位置 (如果在中找到 s ) 或 NULL 以其他方式找到该字符。

例如:printf("%s", *FindToken(“are exams over yet?”, “zypqt”)); // will display “yet?”

第1个答案

你几乎接近了。

几乎没有什么问题。

  1. 当你这样做 (t++) 的时候, 最终你会把 t 它的记忆指向终点, 并领先 u b。
  2. strcmp不是为了 char 如你所愿进行比较。

char *FindToken(char *s,char *t)
{
    while (*s)
    {
        int i = 0;
        //char check = *(char*)s; tried this but it doesn't work
        while(t[i])
        {
            if (*s == t[i])) {
                printf("%s", s);
                return s;
            }
            i++;
        }
        s++;
    }
    return NULL;
}

相关问题

我投的是 malloc 的结果吗? 为什么是统计:: st _ size 0 为设备, 但同时 lseek 正确地定义了设备大小? 允许在易失对象上进行优化