每天一题:初级华为题库——删除字符串的指定字符串

  不能坚持的人,等于0;像我这样不持之以恒也博客的家伙,也不是个好鸟。好在自己一直题库啦。今天跟自己再鼓劲一次,每天记得更新!!

  今天的题目,还是字符串,之所以最近都在联系这类题目的原因,是其比较适合作为笔试题或是机试题来联系。

  <题目要求>

    要求输入两行字符串M和N(不超过125位),输出M中非N中出现的字符串。

  思路:输入M和N,再让M中的每一位与N进行匹配,匹配了之后就置位一个临时变量并跳出(找到后直接跳出,可以减少遍历),未匹配就不改变临时变量,最后通过判断临时变量是否置位来决定该位是否输出。

  易错点:没啥难点,就是对于华为机试题库而言,不要任意添加额外输出语句(cout<<"XXX";)。否则,其从控制台上检测输入的时候,会将你用于说明的额外输出语句一起检测,然后就报错了。

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char M[125],N[125];
    //cout<<"Please Enter M and N:"<<endl;//不要画蛇添足!
    cin>>M>>N;
    int j=0;
    int i=0;
    int tmp;
    int num_n=strlen(N);
    while(M[j]!='\0')
    {
        tmp=0;
        for(i=0; i<num_n; i++)
        {
            if(M[j]==N[i])
            {
                tmp++;
                break;
            }
        }
        if(tmp==0)
        {
            cout<<M[j];
        }
        j++;
    }
    return 0;
}

 

 

posted on 2014-04-17 16:13  Sophie@原本  阅读(219)  评论(0编辑  收藏  举报