新聞中心
簡(jiǎn)述C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)strcpy功能和格式?
C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)strcpy功能和格式:
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括上街網(wǎng)站建設(shè)、上街網(wǎng)站制作、上街網(wǎng)頁(yè)制作以及上街網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,上街網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到上街省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
功能:strcpy是一種C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)函數(shù),用于把一個(gè)字符串復(fù)制到另一個(gè)字符串。
格式:char *strcpy(char *dest, const char *src)
參數(shù):dest是目標(biāo)字符串的指針,src是源字符串的指針。
返回值:返回dest的指針。
注意事項(xiàng):必須保證dest有足夠的空間存放src的內(nèi)容,否則可能會(huì)造成緩沖區(qū)溢出的錯(cuò)誤
C語(yǔ)言字符串處理的庫(kù)函數(shù)有哪些
函數(shù)名: strrchr
功 能: 在串中查找指定字符的最后一個(gè)出現(xiàn)
用 法: char *strrchr(char *str, char c);
舉例:
[cpp] view plain copy
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'/');
printf("filename is %s",++ptr);
//運(yùn)行結(jié)果:filename is lib1.so
函數(shù)名: strchr
功 能: 在串中查找指定字符的第一個(gè)出現(xiàn)
用 法: char *strchr(char *str, char c);
舉例:
[cpp] view plain copy
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'.');
printf("after strchr() is %s",++ptr);
//運(yùn)行結(jié)果:after strchr() is /lib/lib1.so
函數(shù)名: strtok
功 能: 在串中查找指定字符的第一個(gè)出現(xiàn)
用 法: char *strtok(char *s, char *delim);
說(shuō)明:
1.strtok函數(shù)的實(shí)質(zhì)上的處理是,strtok在s中查找包含在delim中的字符并用NULL(’/0′)來(lái)替換,直到找遍整個(gè)字符串。這句話有兩層含義:(1)每次調(diào)用strtok函數(shù)只能獲得一個(gè)分割單位。(2)要獲得所有的分割單元必須反復(fù)調(diào)用strtok函數(shù)。
2.strtok函數(shù)以后的調(diào)用時(shí)的需用NULL來(lái)替換s.
3.形參s(要分割的字符串)對(duì)應(yīng)的變量應(yīng)用char s[]=”….”形式,而不能用char *s=”….”形式。
舉例:
[cpp] view plain copy
void main()
{
char buf[]=”Golden Global View”;
char* token = strtok( buf, ” “);
while( token != NULL )
{
printf( ”%s “, token );
token = strtok( NULL, ” “);
}
return 0;
}
/*其結(jié)果為:
Golden
Global
View
*/
函數(shù)名:strncpy
功能:把src所指由NULL結(jié)束的字符串的前n個(gè)字節(jié)復(fù)制到dest所指的數(shù)組中
用法:char *strncpy(char *dest, char *src, int n);
說(shuō)明:
如果src的前n個(gè)字節(jié)不含NULL字符,則結(jié)果不會(huì)以NULL字符結(jié)束。
如果src的長(zhǎng)度小于n個(gè)字節(jié),則以NULL填充dest直到復(fù)制完n個(gè)字節(jié)。
src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來(lái)容納src的字符串。
返回指向dest的指針。
舉例:
[c-sharp] view plain copy
#include syslib.h
#include string.h
main()
{
char buf[4];
char *s="abcdefg";
strncpy(buf,s,4);
printf("%s/n",buf);
return 0;
}
/*運(yùn)行結(jié)果:
abcd
*/
函數(shù)名: stpcpy
功 能: 拷貝一個(gè)字符串到另一個(gè)
用 法: char *stpcpy(char *destin, char *source);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%s/n", string);
return 0;
}
/*運(yùn)行結(jié)果
abcdefghi
*/
函數(shù)名: strcat
功 能: 字符串拼接函數(shù)
用 法: char *strcat(char *destin, char *source);
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s/n", destination);
return 0;
}
/*運(yùn)行結(jié)果:
Borland C++
*/
函數(shù)名: strcmp
功 能: 串比較
用 法: int strcmp(char *str1, char *str2);
看Asic碼,str1str2,返回值 0;兩串相等,返回0
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr 0)
printf("buffer 2 is greater than buffer 1/n");
else if(ptr 0)
printf("buffer 2 is less than buffer 1/n");
else
printf("buffer 2 is equal with buffer 1/n");
return 0;
}
/*運(yùn)行結(jié)果:
buffer 2 is greater than buffer 1
*/
函數(shù)名: strncmpi
功 能: 將一個(gè)串中的一部分與另一個(gè)串比較, 不管大小寫(xiě)
用 法: int strncmpi(char *str1, char *str2, unsigned maxlen);
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr 0)
printf("buffer 2 is greater than buffer 1/n");
if (ptr 0)
printf("buffer 2 is less than buffer 1/n");
if (ptr == 0)
printf("buffer 2 equals buffer 1/n");
return 0;
}
函數(shù)名: strcspn
功 能: 在串中查找第一個(gè)給定字符集內(nèi)容的段
用 法: int strcspn(char *str1, char *str2);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
#include alloc.h
int main(void)
{
char *string1 = "1234567890";
char *string2 = "747DC8";
int length;
length = strcspn(string1, string2);
printf("Character where strings intersect is at position %d/n", length);
return 0;
}
函數(shù)名: strdup
功 能: 將串拷貝到新建的位置處
用 法: char *strdup(char *str);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
#include alloc.h
int main(void)
{
char *dup_str, *string = "abcde";
dup_str = strdup(string);
printf("%s/n", dup_str);
free(dup_str);
return 0;
}
函數(shù)名: stricmp
功 能: 以大小寫(xiě)不敏感方式比較兩個(gè)串
用 法: int stricmp(char *str1, char *str2);
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = stricmp(buf2, buf1);
if (ptr 0)
printf("buffer 2 is greater than buffer 1/n");
if (ptr 0)
printf("buffer 2 is less than buffer 1/n");
if (ptr == 0)
printf("buffer 2 equals buffer 1/n");
return 0;
}
函數(shù)名: strerror
功 能: 返回指向錯(cuò)誤信息字符串的指針
用 法: char *strerror(int errnum);
舉例:
[cpp] view plain copy
#include stdio.h
#include errno.h
int main(void)
{
char *buffer;
buffer = strerror(errno);
printf("Error: %s/n", buffer);
return 0;
}
函數(shù)名: strncmp
功 能: 串比較
用 法: int strncmp(char *str1, char *str2, int maxlen);
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
int ptr;
ptr = strncmp(buf2,buf1,3);
if (ptr 0)
printf("buffer 2 is greater than buffer 1/n");
else
printf("buffer 2 is less than buffer 1/n");
ptr = strncmp(buf2,buf3,3);
if (ptr 0)
printf("buffer 2 is greater than buffer 3/n");
else
printf("buffer 2 is less than buffer 3/n");
return(0);
}
函數(shù)名: strncmpi
功 能: 把串中的一部分與另一串中的一部分比較, 不管大小寫(xiě)
用 法: int strncmpi(char *str1, char *str2, int len);
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
ptr = strncmpi(buf2,buf1,3);
if (ptr 0)
printf("buffer 2 is greater than buffer 1/n");
if (ptr 0)
printf("buffer 2 is less than buffer 1/n");
if (ptr == 0)
printf("buffer 2 equals buffer 1/n");
return 0;
}
函數(shù)名: strnset
功 能: 將一個(gè)串中的所有字符都設(shè)為指定字符
用 法: char *strnset(char *str, char ch, unsigned n);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz";
char letter = 'x';
printf("string before strnset: %s/n", string);
strnset(string, letter, 13);
printf("string after strnset: %s/n", string);
return 0;
}
函數(shù)名: strpbrk
功 能: 在串中查找給定字符集中的字符
用 法: char *strpbrk(char *str1, char *str2);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
int main(void)
{
char *string1 = "abcdefghijklmnopqrstuvwxyz";
char *string2 = "onm";
char *ptr;
ptr = strpbrk(string1, string2);
if (ptr)
printf("strpbrk found first character: %c/n", *ptr);
else
printf("strpbrk didn't find character in set/n");
return 0;
}
函數(shù)名: strrev
功 能: 串倒轉(zhuǎn)
用 法: char *strrev(char *str);
舉例:
[cpp] view plain copy
#include string.h
#include stdio.h
int main(void)
{
char *forward = "string";
printf("Before strrev(): %s/n", forward);
strrev(forward);
printf("After strrev(): %s/n", forward);
return 0;
}
/*運(yùn)行結(jié)果:
Before strrev(): string
After strrev(): gnirts
*/
函數(shù)名: strstr
功 能: 在串中查找指定字符串的第一次出現(xiàn)
用 法: char *strstr(char *str1, char *str2);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %s/n", ptr);
return 0;
}
函數(shù)名: strtod
功 能: 將字符串轉(zhuǎn)換為double型值
用 法: double strtod(char *str, char **endptr);
舉例:
[cpp] view plain copy
#include stdio.h
#include stdlib.h
int main(void)
{
char input[80], *endptr;
double value;
printf("Enter a floating point number:");
gets(input);
value = strtod(input, endptr);
printf("The string is %s the number is %lf/n", input, value);
return 0;
}
函數(shù)名: strtol
功 能: 將串轉(zhuǎn)換為長(zhǎng)整數(shù)
用 法: long strtol(char *str, char **endptr, int base);
舉例:
[cpp] view plain copy
#include stdlib.h
#include stdio.h
int main(void)
{
char *string = "87654321", *endptr;
long lnumber;
/* strtol converts string to long integer */
lnumber = strtol(string, endptr, 10);
printf("string = %s long = %ld/n", string, lnumber);
return 0;
}
函數(shù)名: strupr
功 能: 將串中的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母
用 法: char *strupr(char *str);
舉例:
[cpp] view plain copy
#include stdio.h
#include string.h
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s/n", ptr);
return 0;
}
c語(yǔ)言字符串處理函數(shù)有哪些
1、puts函數(shù)——輸出字符串的函數(shù)
一般的形式為puts(字符串組)
作用:將一個(gè)字符串輸出到終端。如,char一個(gè)string,并賦予初值。調(diào)用puts(string);進(jìn)行字符串的輸出。
2、gets函數(shù)——輸入字符串的函數(shù)
一般的形式:gets(字符數(shù)組)
作用:從終端輸入一個(gè)字符串到字符數(shù)組,并且得到一個(gè)函數(shù)值成為字符數(shù)組的起始地址。
gets(str);
鍵盤輸入,,,,你懂得。
注意:puts和gets函數(shù)只能輸出或者輸入一個(gè)字符串。
3、strcat函數(shù)——字符串連接函數(shù)
一般的形式:strcat(字符數(shù)組1,字符數(shù)組2);
作用:把兩個(gè)字符串?dāng)?shù)組中字符串連接起來(lái),把字符串2連接到字符串1的后面。
說(shuō)明:字符數(shù)組1必須足夠大,以便容納連接后的新字符串。
4、strcpy/strncpy函數(shù)——字符串復(fù)制函數(shù)
一般形式:strcpy(字符數(shù)組1,字符串2);
作用:將字符串2復(fù)制到字符數(shù)組1中去。
如:char str1[10],str2[]="DongTeng";
strcpy(str1,str2);
執(zhí)行后的結(jié)果為:你懂得
注意:
1. 不能用賦值語(yǔ)句直接將一個(gè)字符串常量或者字符數(shù)組直接給一個(gè)字符數(shù)組。
2. 用strncpy可以賦值指定的位置的字符。strncpy(str1,str2,3);將str2中的第3個(gè)字符復(fù)制到str1中。
5、strcmp函數(shù)——字符串比較函數(shù)
一般形式:strcmp(字符串1,字符串2);
作用:用來(lái)比較兩個(gè)字符串的差異。具有不同的比較規(guī)則。
6、strlen函數(shù)——測(cè)字符串長(zhǎng)度的函數(shù)
一般形式:strlen(字符數(shù)組);
如:char str[10]="DongTeng";
printf("%d",strlen(str));
得到的結(jié)果是:5
7、strlwr函數(shù)——轉(zhuǎn)換為小寫(xiě)的函數(shù)
一般形式:strlwr(字符串);
8、strupr函數(shù)——轉(zhuǎn)換為大寫(xiě)的函數(shù)
一般形式:strupr(字符串)。
C語(yǔ)言中對(duì)字符串進(jìn)行操作的標(biāo)準(zhǔn)庫(kù)函數(shù)有哪些
1)字符串操作
strcpy(p, p1) 復(fù)制字符串
strncpy(p, p1, n) 復(fù)制指定長(zhǎng)度字符串
strcat(p, p1) 附加字符串
strncat(p, p1, n) 附加指定長(zhǎng)度字符串
strlen(p) 取字符串長(zhǎng)度
strcmp(p, p1) 比較字符串
strcasecmp忽略大小寫(xiě)比較字符串
strncmp(p, p1, n) 比較指定長(zhǎng)度字符串
strchr(p, c) 在字符串中查找指定字符
strrchr(p, c) 在字符串中反向查找
strstr(p, p1) 查找字符串
strpbrk(p, p1) 以目標(biāo)字符串的所有字符作為集合,在當(dāng)前字符串查找該集合的任一元素
strspn(p, p1) 以目標(biāo)字符串的所有字符作為集合,在當(dāng)前字符串查找不屬于該集合的任一元素的偏移
strcspn(p, p1) 以目標(biāo)字符串的所有字符作為集合,在當(dāng)前字符串查找屬于該集合的任一元素的偏移
* 具有指定長(zhǎng)度的字符串處理函數(shù)在已處理的字符串之后填補(bǔ)零結(jié)尾符
2)字符串到數(shù)值類型的轉(zhuǎn)換
strtod(p, ppend) 從字符串 p 中轉(zhuǎn)換 double 類型數(shù)值,并將后續(xù)的字符串指針存儲(chǔ)到 ppend 指向的 char* 類型存儲(chǔ)。
strtol(p, ppend, base) 從字符串 p 中轉(zhuǎn)換 long 類型整型數(shù)值,base 顯式設(shè)置轉(zhuǎn)換的整型進(jìn)制,設(shè)置為 0 以根據(jù)特定格式判斷所用進(jìn)制,0x, 0X 前綴以解釋為十六進(jìn)制格式整型,0 前綴以解釋為八進(jìn)制格式整型
atoi(p) 字符串轉(zhuǎn)換到 int 整型
atof(p) 字符串轉(zhuǎn)換到 double 符點(diǎn)數(shù)
atol(p) 字符串轉(zhuǎn)換到 long 整型
3)字符檢查
isalpha() 檢查是否為字母字符
isupper() 檢查是否為大寫(xiě)字母字符
islower() 檢查是否為小寫(xiě)字母字符
isdigit() 檢查是否為數(shù)字
isxdigit() 檢查是否為十六進(jìn)制數(shù)字表示的有效字符
isspace() 檢查是否為空格類型字符
iscntrl() 檢查是否為控制字符
ispunct() 檢查是否為標(biāo)點(diǎn)符號(hào)
isalnum() 檢查是否為字母和數(shù)字
isprint() 檢查是否是可打印字符
isgraph() 檢查是否是圖形字符,等效于 isalnum() | ispunct()
網(wǎng)站題目:字符串函數(shù)c語(yǔ)言庫(kù) 字符串 c語(yǔ)言
網(wǎng)頁(yè)URL:http://fisionsoft.com.cn/article/ddddpeg.html