// 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; }
时间: 2024-12-07 02:28:55