• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C语言字符串函数的算法实现1

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

21:32:23   2019-06-01

今天复习了一下C的字符串函数,顺便讲讲字符串函数的算法

首先 强调一下 字符串函数在 <string.h>头文件中

1.strcmp函数

用法:int strcmp(char *str1, char *str2);

功能:串比较,相等返回0,不相等返回字符串中第一个不匹配的字符的数值差(是str1-str2,数值差:也就是ASCII之差)

算法实现

int mystrcmp(char *p1,char *p2)
{ // *p1,*p2 用来存储字符串str1,str2的首地址(也就是字符数组名)
    int i=0;
    while(p1[i]==p2[i]&&p1[i]!=\'\0\')  //从第一个字符开始比较,若相等且没有终止,一直向前
    {
       i++;
    }
    int num;  //用来代表返回值
    if(p1[i]==\'\0\'&&p2[i]==\'\0\')  //两字符串都结束的情况
    {
       num=0;  //判断为相等
    }
    else
    {
       num=p1[i]-p2[i];  //讲字符ASCII码差值赋值给num
    }
    return num;
}

2.strchr函数

用法:char *strchr(char *str, char c);

功能:在一个串中查找给定字符的首次出现的位置,若不存在返回NULL,否则返回首次出现位置的指针

算法实现:

char *mystrchr(char *str, char c)
{
   if(str==NULL)
   {
      return NULL;
   }
   else
   {
      whlie(*str !=\'\0\')
      {
         if((*str)==ch)  // *str等价于 str[i],也就是字符串中的某个字符
         {
             return str;
             break;         //相等返回地址并退出循环
         }
         str++;
      }
      return NULL;
   }
}

3.strcat函数

用法:char *strcat(char *destin, char *source);

功能:字符串拼接函数,成功返回首地址,否则返回NULL

算法实现:

char *mystrcat(char *str1, char *str2)
{
    if (str1 == NULL || str2 == NULL)
        return NULL;
    char *p = str1;//用指针保存str1的首地址
    while (*str1 != \'\0\')
    {
        str1++;
    }
    while (*str2 != \'\0\')
    {
        *str1 = *str2;
        str1++;
    }
    *str1 = \'\0\';
    return p;//返回首地址
}

 

今天就先说到这儿,明天继续!

千万不要太依赖库函数,一定要自己动手实现实现,对于你们的理解和成长有很大的帮助。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap