鍍金池/ 問答/C++/ 輸入字串,對照字串

輸入字串,對照字串

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

回答
編輯回答
遲月

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

const s1 = 'abcsk'
const s2 = 'abnn'
if (new Set(s1).size === new Set(s1 + s2).size) {
    // 說明s2里面只有s1的元素
} else {
    // 說明s2里面含有s1意外的元素
}
2017年1月30日 11:28
編輯回答
悶騷型

可以使用下面的庫函數(shù)處理:
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;
}
2017年7月21日 18:14
編輯回答
傻丟丟

若你比較的粒度是單個字符,而不是整個字符串,那么strstr是不行的。還是自己用雙重循環(huán)一個char一個char地判斷吧。

2017年6月25日 00:10