码迷,mamicode.com
首页 > 其他好文 > 详细

字符串的相关操作

时间:2015-04-11 22:17:33      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

// demo3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <cassert>
#include <iostream>
using namespace std;

int str_len(const char *str)
{
    const char *temp=str;
    assert(str!=NULL);
    while(*str++!=\0);    //这种求字符串的算法很高效
    return(str-temp-1);
}

int str_str_find(const char *src,const char *sub)
{
    const char *bp;
    const char *sp;
    const char *temp=src;
    if (src==NULL||sub==NULL)
    {
        return 0;
    }
    while(*src)
    {
        bp=src;
        sp=sub;
        do 
        {
            if (!*sp)
            {
                return src-temp+1;
            }
        } while (*bp++==*sp++);
        src+=1;
    }
    return 0;        //找不到字符串
}

int _tmain(int argc, _TCHAR* argv[])
{
    char a[]="helloworld";
    char b[]="lhho";
    int m=str_str_find(a,b);
    cout<<m<<endl;
    return 0;
}

 

1.2 回文判断

#include "stdafx.h"
#include <cassert>
#include <iostream>
using namespace std;

bool isRevStr(const char *str)        //回文字符串判断
{
    const char *start=str;    //头指针
    const char *end=NULL;    //尾指针
    assert(str!=NULL);
    while(*++str!=\0);
    int len=str-start;    //字符串长度
    end=str-1;                //指向尾指针

    //注意下面的代码和上面的不同之处
    /*while(*str++!=‘\0‘);
    int len=str-start-1;    //字符串长度  上面没有-1
    end=str-2;                //指向尾指针   -2不是-1
    */

    for (int i=0;i<len/2;i++)
    {
        if (*start++!=*end--)
        {
            return false;
        }    
    }
    return true;
}

int _tmain(int argc, _TCHAR* argv[])
{
    const char a[]="wangnaw";
    if (isRevStr(a))
    {
        cout<<"yes"<<endl;
    }
    else
        cout<<"no"<<endl;
    return 0;
}

字符串的相关操作

标签:

原文地址:http://www.cnblogs.com/audi-car/p/4418386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!