重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
strcmp函數(shù)是string compare(字符串比較)的縮寫,用于比較兩個(gè)字符串并根據(jù)比較結(jié)果返回整數(shù)。基本形式為strcmp(str1,str2),若str1=str2,則返回零;若str1str2,則返回負(fù)數(shù);若str1str2,則返回正數(shù)。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、城關(guān)網(wǎng)站維護(hù)、網(wǎng)站推廣。
擴(kuò)展資料:
規(guī)則:
當(dāng)s1s2時(shí),返回為負(fù)數(shù);
當(dāng)s1=s2時(shí),返回值= 0;
當(dāng)s1s2時(shí),返回正數(shù)。
即:兩個(gè)字符串自左向右逐個(gè)字符相比(按ASCII值大小相比較),直到出現(xiàn)不同的字符或遇'\0'為止。
參考資料:百度百科——strcmp
1、strcat()
此函數(shù)原型為 char *strcat(char *dest, const char *src).
功能為連接兩個(gè)字符串,把src連接到dest后面;返回dest地址
實(shí)現(xiàn)如下
[cpp] view plaincopy
char * strcat(char *dest,const char *src)
{
char* addr=dest;
while(*dest)//找到'\0'
{
dest++;
};
while(*dest++=*src++)
{};
return addr;
}
2、strcmp()
此函數(shù)的函數(shù)原型為 int strcmp(const char *str1, const char *str2).
功能為比較兩個(gè)字符串。
當(dāng)str1指向的字符串大于str2指向的字符串時(shí),返回正數(shù)。
當(dāng)str1指向的字符串等于str2指向的字符串時(shí),返回0。
當(dāng)str1指向的字符串小于str2指向的字符串時(shí),返回負(fù)數(shù)。
實(shí)現(xiàn)如下:
[cpp] view plaincopy
int strcmp(const char *str1, const char *str2)
{
while(*str1==*str2)
{
if(*str1=='\0')
return 0;
str1++;
str2++;
}
return *str1-*str2;
}
3、strcpy()
此函數(shù)原型為 char *strcpy(char* dest, const char *src)
功能為拷貝字符串內(nèi)容到目的串,把src所指向的內(nèi)容拷貝到dest
實(shí)現(xiàn)如下
[cpp] view plaincopy
char *strcpy(char *dest,const char *src)
{
//assert(dest!=NULLsrc!=NULL);
char *addr=dest;
while(*dest++=*src++);
return addr;
}
4、strlen()
此函數(shù)原型為unsigned in strlen(const char *str)
功能為返回字符串str的長(zhǎng)度(不包括'\0')。
實(shí)現(xiàn)如下:
[cpp] view plaincopy
unsigned int strlen(const char *str)
{
unsigned len=0;
while(*str!='\0')
{
len++;
str++;
}
return len;
}
5、strchr() strrchr()
char *strchr(char *str, char c)
功能為查找str中首次出現(xiàn)c的位置,如有有,則返回出現(xiàn)位置,否則返回NULL。實(shí)現(xiàn)如下:
[cpp] view plaincopy
char *strchr(char *str, char c)
{
while(*str!='\0'*str!=c)
{
str++;
}
return (*str==c? str: NULL);
}
char *strrchr(char *str, char c)
功能為查找str中最后一次出現(xiàn)c的位置,如有有,則返回出現(xiàn)位置,否則返回NULL。實(shí)現(xiàn)如下:
[cpp] view plaincopy
char *strrchr(char *str, char c)
{
char *p=str+strlen(str);//p指向最后一個(gè)字符
while(p!=str*p!=c)
p--;
if(p==str*p!=c)
return NULL;
else return p;
}
6、strcspn() strspn()
strcspn
原型:size_t strcspn(const char *pstr, const char *strCharset)
MSDN解釋為:在字符串pstr中搜尋strCharsret中所出現(xiàn)的字符,返回strCharset中出現(xiàn)的第一個(gè)字符在pstr中的出現(xiàn)位置。簡(jiǎn)單的說,若strcspn返回的數(shù)值為n,則代表字符串strCharsrt開頭連續(xù)有n個(gè)字符不包含在pstr內(nèi)的字符。
功能:返回后面字符串中第一個(gè)不在前者出現(xiàn)的下表。
7、strdup()
此函數(shù)原型為char *strdup(const char *str)
功能為拷貝字符串到新建的內(nèi)存,返回內(nèi)存指針。若失敗,返回NULL。要注意,返回的指針指向的內(nèi)存在堆中,所以要手動(dòng)釋放。
函數(shù)實(shí)現(xiàn):
[cpp] view plaincopy
char *strdup(const char *str)
{
char *p=NULL;
if(str(p=(char*)malloc(strlen(str)+1)))
strcpy(p,str);
return p;
8、strrev()
此函數(shù)的原型為char *strrev(char *str)
功能為反轉(zhuǎn)字符串,返回字符串指針。
函數(shù)實(shí)現(xiàn):
[cpp] view plaincopy
char *strrev(char *str)
{
if(str==NULL)
return NULL;
char *start=str;
char *end=str+strlen(str)-1;
char temp;
while(startend)
{
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
}
return str;
}
9、strstr()
函數(shù)原型為char *strstr(const char str1, const char *str2)
功能為查找字符串str2在str1中出現(xiàn)的位置,找到則返回位置,否則返回NULL。
函數(shù)實(shí)現(xiàn):
[cpp] view plaincopy
char *strstr(const char str1, const char *str2)
{
int length1=strlen(str1);
int length2=strlen(str2);
while(length1=length2)
{
length1--;
if(!strncpy(str1,str2,length2))//比較前n個(gè)字符串,類似strcpy
return str1;
str1++;
}
return NULL;
}
1、strcpy函數(shù)是復(fù)制字符串的,接受兩個(gè)參數(shù),一個(gè)是被復(fù)制字符串,另一個(gè)新字符串。具體的用法,首先打開編輯器新建一個(gè)c語言的程序文件,寫入頭文件和主函數(shù):
2、接著定義兩個(gè)數(shù)組a和b,程序經(jīng)過strcpy函數(shù)處理,將b數(shù)組中的字符串復(fù)制到a數(shù)組中,最后打印出結(jié)果:
3、最后來看看效果。打開調(diào)試窗口,輸入一句話,按下回車輸出了這句話。以上就是C語言中strcpy的用法:
函數(shù)聲明:extern unsigned int strlen(char *s);
所屬函數(shù)庫(kù):string.h
功能:返回s所指的字符串的長(zhǎng)度,其中字符串必須以’\0’結(jié)尾
參數(shù):s為字符串的初始地址
使用舉例:
代碼如下
編譯運(yùn)行結(jié)果
說明:
函數(shù)strlen比較容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字符串聲明后占用的內(nèi)存長(zhǎng)度,它就是一個(gè)操作符,不是函數(shù);而strlen則是一個(gè)函數(shù),它從第一個(gè)字節(jié)開始往后數(shù),直到遇見了’\0’,則停止
第一 string頭文件中的函數(shù)strlen 只可以用來測(cè)試字符型數(shù)組的長(zhǎng)度,其他類型不可以
第二 如果要測(cè)試int 修改原函數(shù)中的參數(shù),會(huì)導(dǎo)致數(shù)組長(zhǎng)度變長(zhǎng)(計(jì)算機(jī)會(huì)一直找下去,直到遇到\0)
第三 如果是字符數(shù)組,當(dāng)里面的字符數(shù)少于數(shù)組長(zhǎng)度時(shí),可以正常輸出用strlen,如果等于數(shù)組長(zhǎng)度,則會(huì)出現(xiàn)問題
函數(shù)介紹:
(推薦教程:c語言教程)
strlen()函數(shù)用于計(jì)算字符串的長(zhǎng)度,直到空結(jié)束字符,但不包括空結(jié)束字符。
語法結(jié)構(gòu):
size_t strlen(const char *str)
參數(shù)說明:
str -- 要計(jì)算長(zhǎng)度的字符串。
返回值:
該函數(shù)返回字符串的長(zhǎng)度
strlen:計(jì)算字符串長(zhǎng)度的庫(kù)函數(shù)名。
str:通常,程序員喜歡用它作 字符串 變量名。它是string(英文詞字符串的縮寫)。
len:通常,程序員喜歡用它作 變量名。它是 length(英文詞長(zhǎng)度的縮寫)。
例如:
char str[20]="I am a student";
int len;
len = strlen(str);
printf("the string length is: %d",len);
擴(kuò)展資料:
函數(shù)原型
extern?unsigned?int?strlen(char?*s);
在Visual C++ 6.0或Dev-C++中,原型為size_t?strlen(const?char?*string);,其中size_t實(shí)際上是unsigned int,在VC6.0或Dev-C++中可以看到這樣的代碼:
typedef?unsigned?int?size_t;
頭文件:string.h或cstring
格式:strlen (字符指針表達(dá)式)
功能:計(jì)算給定字符串的(unsigned int型)長(zhǎng)度,不包括'\0'在內(nèi)
說明:返回s的長(zhǎng)度,不包括結(jié)束符NULL。
strlen(char*)函數(shù)求的是字符串的實(shí)際長(zhǎng)度,它求得方法是從開始到遇到第一個(gè)'\0',如果你只定義沒有給它賦初值,這個(gè)結(jié)果是不定的,它會(huì)從aa首地址一直找下去,直到遇到'\0'停止。
參考資料來源:百度百科-strlen (C/C++語言函數(shù))
#include?stdio.h
#define?N?100
char?*Mid(char?a[],int?i,int?j);//返回值類型是指針
void?main()
{
char?k[12]="HELLOWWORLD";
printf("%s",?Mid(k,3,4)?);
}
char?*Mid(char?a[],int?i,int?j)
{
int?m,t=0;
static?char?b[N];?//為保證不丟失,定義成靜態(tài)
for(m=i-1;mi+j-1;m++)
{
b[t++]=a[m];
}
b[t]=0;//字符串結(jié)束符
return?b;
}