1、得到字符串长度
//相当于for循环遍历s数组元素,每遍历到一个元素做一个计数
int StrLength(const char*s)
{
int i = 0;
for(;s[i];++i)
;
return i;
}
int main(int argc,char**argv[])
{
const char *aa = { "adafafafaf" };
int num = StrLength(aa);
}
2、字符串的拷贝
char* StrCopy(char* s1,const char* s2)
{
char* p = s1;
while(*(s1++)= *(s2++));
return p;
}
3、字符串连接
char* StrConner(char* s1,const char* s2)
{
char* p = s1;
while(*s1)
s1++;
while(*(s1++) = *(s2++));
return p;
}
int main(int argc, char *argv[])
{
char bb[] = { "012345" };
const char *aa = { "adafafafaf" };
char* pp = StrConner(bb, aa);
}
4、字符串比较
//字符串比较不管他们有多长只要在同一个下标出比出哪个大哪个小就OK
int StrCompare(const char*s1,const char*s2)
{
int i = 0,b=0;
while(s1[i] || s2[i])
{
if(s1[i] > s2[i])
{
b =1;
break;
}
else if(s2[i] > s1[i])
{
b = -1;
break;
}
i+=1;
}
return b;
}
5、在父串中查找子串首次出现的地址
char* StrStr(char*s1,char*s2)
{
int i1 = 0, i2 =0;
while(s1[i1])
i1 +=1;
while(s2[i2])
i2 +=1;
int i = i1 - i2 + 1;
for(int j = 0;j < i; ++j)
{
bool b = true;
for (int k = 0; k < i2; ++k)
{
if (s1[j + k] != s2[k])
{
b = false;
break;
}
}
if (b)
return s1 + j;
}
return 0;
}