C 库函数 - strchr()解决L1-011 A-B

今天做到了一道字符串相减的题,在字符串A中把字符串B所包含的字符全部删掉,题目难度不大,但了解到了关于strchr()这一函数的用法。

strchr()的原型为:

char* strchr(const char* str, int c);

其中str表示要被搜索的字符串,c表示要搜索的字符。

这里的字符串要定义为 char 数组类型,而不能定义为string 类型的字符串。

该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。

再结合题目来说,求字符串A-B。

知道了strchr()的用法,那整体思路就很简单,显示声明两个char类型的数组,然后分别输入两个字符串,再利用循环遍历字符串A,在循环中判断字符串A的每一个字符是否在字符串B中检索到,如果检索到就进行下一次循环,否则就输出当前A的字符。

代码如下:

char s1[10002];
       char s2[10002];
 
  cin.getline(s1,10002);
   cin.getline(s2,10002);
   
    for(int i=0;i<strlen(s1);i++)
    {
        if(strchr(s2,s1[i]))//检索到就不输出,结果等价于删除
            continue;
        else
            cout<<s1[i];
    }

这道题不采用strchr()也有相应的解法,也并不复杂,这里不再进行赘述。

posted @ 2022-03-18 19:41  博客大王a  阅读(40)  评论(0)    收藏  举报