輸入字串,對照字串

請問各位大大,今天我有一個字串是"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意外的元素
}
推荐问题