前言
最近一直在练习C语言!
碰巧今天遇到一个涉及指针运算的例子,分享一下!
功能
首先这个程序是在一个字符数组中找到一段相同的字符,并返回相同字符的末尾地址
*************************************************************
++++可能有人会想,这不直接截取就行啦,弄那么复杂干啥呢!
那是你没遇到这种问题
最近做的项目是截取动态字符串,首尾无固定地址,不敢信,只能通过特殊字符判定,所以才有下面这一段代码
代码
int FindLastAddr(const unsigned char *intab , const unsigned char *s)
{
int addr_last=0;
if((*s=='\0')||(*intab=='\0'))
{
return 0;
}
while(*intab!='\0') //遍历字符串
{
const unsigned char *s1=s;
for(;*s1==*intab;) //不断找寻相同字符串
{
if(*++s1=='\0') //当满足相等条件,就判断s1后一个字符是不是\0
{
return addr_last; //返回s1末尾字符在intab中的地址
}
else if(*++intab!=*s1)
{
addr_last++;
break;
}
addr_last++;
}
++intab;
addr_last++;
}
return 0;
}
想综合练习指针的,可以理解一下这个。。。