国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

淺談C語言中strcpy,strcmp,strlen,strcat函數(shù)原型

2020-01-26 14:11:24
字體:
供稿:網(wǎng)友

實(shí)例如下:

//strcat(dest,src)把src所指字符串添加到dest結(jié)尾處(覆蓋dest結(jié)尾處的'/0')并添加'/0'char *strcat(char * strDest, const char *strSrc){  char *res=strDest;  assert((strDest!=NULL)&&(strSrc!=NULL));  while(*strDest)strDest++;  while(*strDest=*strSrc)  {    strDest++;    strSrc++;  }  return res;}//strcpy(dest,src)把從src地址開始且含有null結(jié)束符的字符串復(fù)制到以dest開始的地址空間char *strcpy(char *strDest, const char *strSrc){  char *res=strDest;  assert((strDest!=NULL)&&(strSrc!=NULL));  while((*strDest=*strSrc)!='/0')  {    strDest++;    strSrc++;  }  return res;}

今天去文思創(chuàng)新面試,考官問了我一個簡單的實(shí)現(xiàn),即:自己編寫strcpm的實(shí)現(xiàn),IBM曾經(jīng)也考過寫strcpy原型,這幾個函數(shù)在面試的時候經(jīng)常被考到,很具有代表性,突然被問起還真有點(diǎn)措手不及呢。現(xiàn)在記下供大家學(xué)習(xí)和以后溫習(xí):(下面的程序經(jīng)本人通過)

1、Strcat函數(shù)原型如下:

char *strcat(char *strDest, const char *strScr) //將源字符串加const,表明其為輸入?yún)?shù){    char * address = strDest;       //該語句若放在assert之后,編譯出錯    assert((strDest != NULL) && (strScr != NULL)); //對源地址和目的地址加非0斷言    while(*strDest)       //是while(*strDest!='/0')的簡化形式    {            //若使用while(*strDest++),則會出錯,因?yàn)?+是不受循環(huán)       strDest++;        //約束的。所以要在循環(huán)體內(nèi)++;因?yàn)橐?strDest最后指    }            //向該字符串的結(jié)束標(biāo)志'/0'。    while(*strDest++ = *strScr++)     {       NULL;         //該循環(huán)條件內(nèi)可以用++,    }             //此處可以加語句*strDest='/0';有無必要?return address;        //為了實(shí)現(xiàn)鏈?zhǔn)讲僮鳎瑢⒛康牡刂贩祷貆

以下是在VC6.0中調(diào)試的例子,函數(shù)名用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函數(shù)原型如下:

char *strcpy(char *strDest, const char *strScr){    char *address=strDest;    assert((strDest != NULL) && (strScr != NULL));    while(*strScr)          //是while(*strScr != '/0')的簡化形式;    {       *strDest++ = *strScr++;    }    *strDest = '/0';            //當(dāng)strScr字符串長度小于原strDest字符串長度    return address;           //時,如果沒有改語句,就會出錯了。}

以下是在VC6.0中調(diào)試的例子,函數(shù)名用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函數(shù)原型如下:

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中調(diào)試的例子,函數(shù)名用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函數(shù)原型如下:

int strlen(const char *str){  int len = 0;    assert(str != NULL);    while(*str++)    {       len++;    }    return len;}

以下是在VC6.0中調(diào)試的例子,函數(shù)名用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));}

以上這篇淺談C語言中strcpy,strcmp,strlen,strcat函數(shù)原型就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 滕州市| 迁西县| 彩票| 德清县| 凉城县| 佛学| 邯郸市| 外汇| 漠河县| 仪陇县| 泰兴市| 中超| 阿拉尔市| 九江县| 苍山县| 安阳县| 吴堡县| 阳朔县| 大足县| 张家界市| 祥云县| 吴川市| 商城县| 扬中市| 文水县| 昌平区| 蓬莱市| 台中县| 图木舒克市| 横峰县| 嵊泗县| 比如县| 凤山县| 米脂县| 雷山县| 万载县| 盐津县| 丹江口市| 南充市| 潼关县| 承德市|