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()也有相应的解法,也并不复杂,这里不再进行赘述。

浙公网安备 33010602011771号