精华内容
下载资源
问答
  • 下面小编就为大家带来一篇浅谈C语言中strcpy,strcmp,strlen,strcat函数原型。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • C语言中strcpy_strcmp_strlen_strcat函数原型
  • Strcat函数原型如下:

    2012-02-22 09:22:00
    Strcat函数原型如下: 注:实参strDest需要有足够空间容纳strSrc,否则报错  char *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数  {  char *address = strDest; //...

     Strcat函数原型如下:

     注:实参strDest需要有足够空间容纳strSrc,否则报错

      char *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数

     

      {

     

      char *address = strDest; //该语句若放在assert之后,编译出错

     

      assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言

     

      while(*strDest) //是while(*strDest!=’\0’)的简化形式

     

      { //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,那么strDest

     

      strDest++; //将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指

     

      } //向该字符串的结束标志’\0’。

     

      while(*strDest++ = *strSrc++)

     

      {  

    *p++等价于*(p++)。至于为什么会等价呢?根据c语言的优先级。*与++的优先级同处在第二级别上。他们的优先级是一样的,又因为处在第二级别的优先级运算符是结合方向是从右到左,所以当出现*p++这样的表达式的时候,根据优先级别相同,并且结合方向是从右到左,所以就等价于*(p++)了。那么也就是,先将p指针移动到下个p指针所指向元素的地址的下一个地址,然后再对那个地址取值。(*p)++是取p所指向地址的值,然后再将这个值+1
     

      NULL; //该循环条件内可以用++,

     

      } //此处可以加语句*strDest=’\0’;无必要

     

     

    或者

    while(*strSrc)

        {

            *strDest=*strSrc;

            strDest++;

            strSrc++;

        不能用    strDest=strSrc;

                    这样改变指针指向,断开了形参与实参之间的联系,实参的值不会受到影响

        }

     

      return address; //为了实现链式操作,将目的地址返回

     

      }

     

     

    实例:

    char *p1,*p2,str[20]="xyz";

        p1="abcd";

        p2="ABCD";

        

        strcpy(str+1, strcat(str+1, p2+1));//strcat实现两个字符串从第一个参数的内存起始位置,连接(catenate链接),注意第一个参数要有空间容纳第二个参数,否则会报错。

        printf("%s",str);

     

    结果:xbcdBCD

    转载于:https://www.cnblogs.com/pengyingh/articles/2362515.html

    展开全文
  • 1、Strcat函数原型如下: char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数 {  char * address = strDest; //该语句若放在assert之后,编译出错  assert(...
    1、Strcat函数原型如下:
    
    char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
    {
           char * address = strDest;             //该语句若放在assert之后,编译出错
           assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非0断言
           while(*strDest)             //是while(*strDest!=’/0’)的简化形式
           {                        //若使用while(*strDest++),则会出错,因为++是不受循环
                  strDest++;               //约束的。所以要在循环体内++;因为要是*strDest最后指
           }                        //向该字符串的结束标志’/0’。
           while(*strDest++ = *strScr++) 
           {
                  NULL;                 //该循环条件内可以用++,
           }                          //此处可以加语句*strDest=’/0’;有无必要?
    return address;               //为了实现链式操作,将目的地址返回
    }
    以下是在VC6.0中调试的例子,函数名用strcata代替。
    #include <stdio.h>
    #include <assert.h>
    char *strcata(char *strDest,const char *strScr)
    {
           char * address = strDest;
           assert((strDest != NULL) && (strScr != NULL));
           while(*strDest)
           {
                  strDest++;
           }
           while(*strDest++ = *strScr++)
           {
                  NULL;
           }
           return address;
    }

    void main()
    {
           char str1[100]={"i love"};
           char str2[50]={"China"};
           printf("%s/n",strcata(str1,str2));
    }
    2、Strcpy函数原型如下:
    char *strcpy(char *strDest, const char *strScr)
    {
           char *address=strDest;
           assert((strDest != NULL) && (strScr != NULL));
           while(*strScr)                   //是while(*strScr != ’/0’)的简化形式;
           {
                  *strDest++ = *strScr++;
           }
           *strDest = '/0';                       //当strScr字符串长度小于原strDest字符串长度
           return address;                      //时,如果没有改语句,就会出错了。
    }
    以下是在VC6.0中调试的例子,函数名用strcpya代替。
    #include <stdio.h>
    #include <assert.h>
    char *strcpya(char *strDest, const char *strScr)
    {
           char *address = strDest;
           assert((strDest != NULL) && (strScr != NULL));
           while(*strScr)
           {
                  *strDest++ = *strScr++;
           }
           *strDest = '/0';
           return address;
    }

    void main()
    {
           char str1[100]={"i love"};
           char str2[50]={"China"};
           printf("%s/n",strcpya(str1,str2));
    }
    3、Strcmp函数原型如下:
    int strcmp (const char *str1,const char *str2)
    {           
           int len = 0;
           assert((str1 != '/0') && (str2 != '/0'));
           while(*str1 && *str2 && (*str1 == *str2))
           {
                  str1++;
                  str2++;
           }
           return *str1-*str2;
    }
    以下是在VC6.0中调试的例子,函数名用strcmpa代替。
    #include <stdio.h>
    #include <assert.h>
    int strcmpa (const char *str1,const char *str2)
    {           
           int len = 0;
           assert((str1 != '/0') && (str2 != '/0'));
           while(*str1 && *str2 && (*str1==*str2))
           {
                  str1++;
                  str2++;
           }
           return *str1-*str2;
    }

    void main()
    {
           char str1[100] = {"i love"};
           char str2[50] = {"China "};
           printf("%d/n",strcmpa(str1,str2));
    }
    4、Strlen函数原型如下:
    int strlen(const char *str)
    {
        int len = 0;
           assert(str != NULL);
           while(*str++)
           {
                  len++;
           }
           return len;
    }
    以下是在VC6.0中调试的例子,函数名用strlena代替。
    #include <stdio.h>
    #include <assert.h>
    int strlena(const char *str)
    {
        int len = 0;
           assert(str != NULL);
           while(*str++)
           {
                  len++;
           }
           return len;
    }
    void main()
    {
           char str1[100] = {"i love"};
           char str2[50] = {"China "};
           printf("%d/n",strlena(str1));
    }
    展开全文
  • 1、Strcat函数原型如下: char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数 {  char * address = strDest; //该语句若放在assert之后,编译出错  assert(...
    1、Strcat函数原型如下:
    
    char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
    {
           char * address = strDest;             //该语句若放在assert之后,编译出错
           assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非0断言
           while(*strDest)             //是while(*strDest!=’/0’)的简化形式
           {                        //若使用while(*strDest++),则会出错,因为++是不受循环
                  strDest++;               //约束的。所以要在循环体内++;因为要是*strDest最后指
           }                        //向该字符串的结束标志’/0’。
           while(*strDest++ = *strScr++) 
           {
                  NULL;                 //该循环条件内可以用++,
           }                          //此处可以加语句*strDest=’/0’;有无必要?
    return address;               //为了实现链式操作,将目的地址返回
    }
    以下是在VC6.0中调试的例子,函数名用strcata代替。
    #include <stdio.h>
    #include <assert.h>
    char *strcata(char *strDest,const char *strScr)
    {
           char * address = strDest;
           assert((strDest != NULL) && (strScr != NULL));
           while(*strDest)
           {
                  strDest++;
           }
           while(*strDest++ = *strScr++)
           {
                  NULL;
           }
           return address;
    }

    void main()
    {
           char str1[100]={"i love"};
           char str2[50]={"China"};
           printf("%s/n",strcata(str1,str2));
    }
    2、Strcpy函数原型如下:
    char *strcpy(char *strDest, const char *strScr)
    {
           char *address=strDest;
           assert((strDest != NULL) && (strScr != NULL));
           while(*strScr)                   //是while(*strScr != ’/0’)的简化形式;
           {
                  *strDest++ = *strScr++;
           }
           *strDest = '/0';                       //当strScr字符串长度小于原strDest字符串长度
           return address;                      //时,如果没有改语句,就会出错了。
    }
    以下是在VC6.0中调试的例子,函数名用strcpya代替。
    #include <stdio.h>
    #include <assert.h>
    char *strcpya(char *strDest, const char *strScr)
    {
           char *address = strDest;
           assert((strDest != NULL) && (strScr != NULL));
           while(*strScr)
           {
                  *strDest++ = *strScr++;
           }
           *strDest = '/0';
           return address;
    }

    void main()
    {
           char str1[100]={"i love"};
           char str2[50]={"China"};
           printf("%s/n",strcpya(str1,str2));
    }
    3、Strcmp函数原型如下:
    int strcmp (const char *str1,const char *str2)
    {           
           int len = 0;
           assert((str1 != '/0') && (str2 != '/0'));
           while(*str1 && *str2 && (*str1 == *str2))
           {
                  str1++;
                  str2++;
           }
           return *str1-*str2;
    }
    以下是在VC6.0中调试的例子,函数名用strcmpa代替。
    #include <stdio.h>
    #include <assert.h>
    int strcmpa (const char *str1,const char *str2)
    {           
           int len = 0;
           assert((str1 != '/0') && (str2 != '/0'));
           while(*str1 && *str2 && (*str1==*str2))
           {
                  str1++;
                  str2++;
           }
           return *str1-*str2;
    }

    void main()
    {
           char str1[100] = {"i love"};
           char str2[50] = {"China "};
           printf("%d/n",strcmpa(str1,str2));
    }
    4、Strlen函数原型如下:
    int strlen(const char *str)
    {
        int len = 0;
           assert(str != NULL);
           while(*str++)
           {
                  len++;
           }
           return len;
    }
    以下是在VC6.0中调试的例子,函数名用strlena代替。
    #include <stdio.h>
    #include <assert.h>
    int strlena(const char *str)
    {
        int len = 0;
           assert(str != NULL);
           while(*str++)
           {
                  len++;
           }
           return len;
    }
    void main()
    {
           char str1[100] = {"i love"};
           char str2[50] = {"China "};
           printf("%d/n",strlena(str1));
    }
    展开全文
  • strcpy与strcat函数原型

    2017-08-23 16:30:00
    1.strcpy函数原型 char *my_strcpy(char *dest,const char *src) //const使在函数中不能修改*src其原先的值{  char *strDest = dest; //保存原始的strDest  assert((dest!=NULL)&&(src!=NUL...

    1.strcpy函数原型

    char *my_strcpy(char *dest,const char *src)    //const使在函数中不能修改*src其原先的值
    {
      char *strDest = dest;                                  //保存原始的strDest
      assert((dest!=NULL)&&(src!=NULL));       //检验参数,增加代码健壮性
      while((*dest++=*src++)!='\0');
      return strDest;

    }

     

    2.strcat函数原型

    char *my_strcat(char *dest,const char *src) //将源字符串加const,表明其为输入参数
    {
      char *strDest=dest;
      assert(dest!=NULL && src!=NULL);      //对源地址和目的地址加非0断言
      //若使用while(*Dest++),则会出错,指向'\0'之后,会出现dest++,则指向了个'\0'的下一个位置,
      while(*dest !='\0')
      {
        dest++;                                            //循环体内的++可以使指向字符串结束标志'\0'
      }
      while((*dest++=*src++)!='\0');
      return strDest; 
    }

     

    转载于:https://www.cnblogs.com/home123/p/7418842.html

    展开全文
  • C语言中strcpy,strcmp,strlen,strcat函数原型 今天去文思创新面试,考官问了我一个简单的实现,即:自己编写strcpm的实现,IBM曾经也考过写strcpy原型,这几个函数在面试的时候经常被考到,很具有代表性,突然被问...
  • 1、一般认为strcpy函数实现不是很难,流行的strcpy函数写法是: [cpp] view plaincopy char *my_strcpy(char *dst,const char *src)  {   assert(dst != NULL);   assert...
  • char *strcat(char *strDest,const char *strSrc) { char *address=strDest; assert((strDest!=NULL) && (strSrc!=NULL)); while(*strDest!='\0') strDest++; while(*strSrc!='\0') *strDest++=*strSrc++; *...
  • Strcat函数和Strncat函数

    2020-05-13 09:13:39
    Strcat函数原型 char *strcat( char *strDestination, const char *strSource ); strcat函数的注意事项 源字符串必须以\0结束 目标空间必须足够大,能容纳下源字符串的内容 目标空间必须可修改 模拟实现strcat #...
  • strcat函数

    2015-02-04 15:11:29
    此文档对strcat函数做了详细的说明以及举例说明其用法,同时也把他的函数原型给列出来了
  • 模拟实现strcat函数

    2018-06-13 09:33:39
    算法分析strcat函数功能:将两个字符串连接起来,最终返回连接后字符串的首地址.strcat函数原型:char *strcat(char *dest,const char *src);我们清楚地了解了strcat函数功能和原型之后,就很容易分析出算法...算法总结...
  • C语言strcat函数怎么用char a[]; scanf("%s",a); strcat(a,".txt"); FILE *fp=fopen(a,"w"); f用法: #include 在C++中,则存在于头文件中。 strcat原型: extern char *strcat(char *dest,char *src); 功能: 把src所指...
  • 闲来无聊,写一写字符串操作函数strlen,strcpy, strcat函数原型,听说之前微软还面试过strcpy这个函数的函数原型。看起来简单,但是暗藏玄机~~~~~。 首先,strlen()(先这么写着吧)函数,求字符串的长度。 既然...
  • C语言::模拟实现strcat函数

    千次阅读 2016-08-07 12:49:33
    题目要求 编写一个C语言程序模拟实现strcat函数. (我们不妨先模拟实现一下strcat函数,然后再对照一下string.h库函数中strcat函数代码的...strcat函数原型:char *strcat(char *dest,const char *src); 我们清楚地了解

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,092
精华内容 2,836
关键字:

strcat函数原型