-
字符串复制
算法实现:将字符串中的字符逐个复制赋值,遇到 '\0' 结束
char *strcpy(char *dst,const char *str)
{
if((NULL == dst)||(NULL == str))
{
return NULL;
}
char *ret = dst;
while(*str != '\0')
{
*dst++ = *str++;
}
return ret;
}
-
字符串翻转
算法实现:将字符串一一分为二,前后互换位置即可
void reserve_str(char *str)
{
int i,len;
char temp;
if(NULL == str)
{
return ;
}
len = strlen(str);
for(i = 0; i < len/2;i++)
{
temp = str[i];
str[i] = str[len-i-1];
strlen[len-i-1] = temp;
}
}
-
字符串比较(常规比较)
实现逻辑:先判断字符串长度是否相等,若相等逐个比较字符
int m_strcmp(char *dst,char *str)
{
int i,len;
if((NULL == dst)||(NULL == str)){
return 0;}
if(strlen(dst) != strlen(str)){
return 0;}
len = strlen(dst);
for(i = 0;i < len;i++)
{
if(*dst++ != *str++)
{
return 0;
}
}
return 1;
}
-
字符串比较(忽略大小写)
实现逻辑:在判断两字符串长度是否相等之后,在比较前,将其转换为统一大小写后再进行比较
#define CONVERT(c) (((c)>= 'A'&&(c) <='Z')?(c)-'A'+'a':(c))
int m_strcpy(char *dst,char *str)
{
int i,len;
if((NULL == dst)||(NULL == str)){
return 0;}
if(strlen(dst) != strlen(str)){
return 0;}
len = strlen(dst);
for(i = 0; i < len;i++)
{
if(CONVERT(*dst) != CONVERT(*str))
{
return 0;
}
dst++;
str++;
}
return 1;
}