輸入字串,對照字串

請問各位大大,今天我有一個字串是"abdcsk",若我想要輸入另一個字串看裡面的字元是否只出現在“abdcsk"裡面(就是不會有fwe等等字元),應該要怎麼做呢?請問可以用strstr實做嗎?拜託各位了!!!

阅读 1.9k
3 个回答

可以使用下面的库函数处理:
size_t strspn(const char str1, const char str2);

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    const char* str1 = "ab2dcskabdcskabdcskabdcskabdcsk";
    const char* str2 = "abdcsk";

    size_t l = strspn(str1, str2);
    if (l == strlen(str1)) {
        printf("All characters in str1:<%s> are all in str2:<%s>\n", str1, str2);
    } else {
        printf("The first %d characters in str1:<%s> are in str2:<%s>\n", l, str1, str2);
    }
    return 0;
}

若你比较的粒度是单个字符,而不是整个字符串,那么strstr是不行的。还是自己用双重循环一个char一个char地判断吧。

利用es6的Set吧
求并集,判断size

const s1 = 'abcsk'
const s2 = 'abnn'
if (new Set(s1).size === new Set(s1 + s2).size) {
    // 说明s2里面只有s1的元素
} else {
    // 说明s2里面含有s1意外的元素
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题