真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言數(shù)組操作庫(kù)函數(shù) c語(yǔ)言函數(shù)處理數(shù)組

關(guān)于C語(yǔ)言函數(shù)調(diào)用數(shù)組的問(wèn)題

因?yàn)閙ain()函數(shù)中的function_a函數(shù)聲明和實(shí)際的情況不一樣,真實(shí)情況是該函數(shù)有三個(gè)參數(shù),而你卻將其聲明為沒(méi)有參數(shù),所以在調(diào)用時(shí),傳入?yún)?shù)會(huì)有警告。

為洛浦等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及洛浦網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、洛浦網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

由于function_a的定義在main()之前,所以去掉主函數(shù)中的聲明即可,或者將聲明改為正確形式。

C語(yǔ)言數(shù)組的輸入輸出函數(shù)

你輸入的\0被認(rèn)為是2個(gè)字符。

'\\'和'0',不是'\0'

至于輸入abcdefghij時(shí)出問(wèn)題,那是數(shù)組邊界問(wèn)題。

用字符數(shù)組保存字符串時(shí),要預(yù)留一個(gè)數(shù)組成員,用來(lái)保存結(jié)尾符號(hào)'\0'。

所以char[10]只能保存長(zhǎng)度為9的字符串。

printf輸出字符串的時(shí)候,只有遇到'\0'才會(huì)停止輸出。

'\0'的值就是0.它會(huì)一直輸出直到在后面連續(xù)的內(nèi)存里遇到'\0'

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ǔ)言中清空字符串的庫(kù)函數(shù)

字符串函數(shù)string.h

在頭文件string.h中定義了兩組字符串函數(shù)。第一組函數(shù)的名字以str開(kāi)頭;第二組函數(shù)的名字以mem開(kāi)頭。只有函數(shù)memmove對(duì)重疊對(duì)象間的拷貝進(jìn)行了定義,而其他函數(shù)都未定義。比較類函數(shù)將其變量視為unsigned char類型的數(shù)組。

1.strcpy

#include string.h

char *strcpy(char *str1, const char *str2);

把字符串str2(包括'\0')拷貝到字符串str1當(dāng)中,并返回str1。

2. strncpy

#include string.h

char *strncpy(char *str1, const char *str2, size_t count);

把字符串str2中最多count個(gè)字符拷貝到字符串str1中,并返回str1。如果str2中少于count個(gè)字符,那么就用'\0'來(lái)填充,直到滿足count個(gè)字符為止。

3.strcat

#include string.h

char *strcat(char *str1, const char *str2);

把str2(包括'\0')拷貝到str1的尾部(連接),并返回str1。其中終止原str1的'\0'被str2的第一個(gè)字符覆蓋。

4.strncat

#include string.h

char *strncat(char *str1, const char *str2, size_t count);

把str2中最多count個(gè)字符連接到str1的尾部,并以'\0'終止str1,返回str1。其中終止原str1的'\0'被str2的第一個(gè)字符覆蓋。

注意,最大拷貝字符數(shù)是count+1。

5.strcmp

#include string.h

int strcmp(const char *str1, const char *str2);

按字典順序比較兩個(gè)字符串,返回整數(shù)值的意義如下:

小于0,str1小于str2;

等于0,str1等于str2;

大于0,str1大于str2;

6 strncmp

#include string.h

int strncmp(const char *str1, const char *str2, size_t count);

同strcmp,除了最多比較count個(gè)字符。根據(jù)比較結(jié)果返回的整數(shù)值如下:

小于0,str1小于str2;

等于0,str1等于str2;

大于0,str1大于str2;

7 strchr

#include string.h

char *strchr(const char *str, int ch);

返回指向字符串str中字符ch第一次出現(xiàn)的位置的指針,如果str中不包含ch,則返回NULL。

8 strrchr

#include string.h

char *strrchr(const char *str, int ch);

返回指向字符串str中字符ch最后一次出現(xiàn)的位置的指針,如果str中不包含ch,則返回NULL。

9 strspn

#include string.h

size_t strspn(const char *str1, const char *str2);

返回字符串str1中由字符串str2中字符構(gòu)成的第一個(gè)子串的長(zhǎng)度。

10 strcspn

#include string.h

size_t strcspn(const char *str1, const char *str2);

返回字符串str1中由不在字符串str2中字符構(gòu)成的第一個(gè)子串的長(zhǎng)度。

11 strpbrk

#include string.h

char *strpbrk(const char *str1, const char *str2);

返回指向字符串str2中的任意字符第一次出現(xiàn)在字符串str1中的位置的指針;如果str1中沒(méi)有與str2相同的字符,那么返回NULL。

12 strstr

#include string.h

char *strstr(const char *str1, const char *str2);

返回指向字符串str2第一次出現(xiàn)在字符串str1中的位置的指針;如果str1中不包含str2,則返回NULL。

13 strlen

#include string.h

size_t strlen(const char *str);

返回字符串str的長(zhǎng)度,'\0'不算在內(nèi)。

14 strerror

#include string.h

char *strerror(int errnum);

返回指向與錯(cuò)誤序號(hào)errnum對(duì)應(yīng)的錯(cuò)誤信息字符串的指針(錯(cuò)誤信息的具體內(nèi)容依賴于實(shí)現(xiàn))。

15 strtok

#include string.h

char *strtok(char *str1, const char *str2);

在str1中搜索由str2中的分界符界定的單詞。

對(duì)strtok()的一系列調(diào)用將把字符串str1分成許多單詞,這些單詞以str2中的字符為分界符。第一次調(diào)用時(shí)str1非空,它搜索str1,找出由非str2中的字符組成的第一個(gè)單詞,將str1中的下一個(gè)字符替換為'\0',并返回指向單詞的指針。

隨后的每次strtok()調(diào)用(參數(shù)str1用NULL代替),均從前一次結(jié)束的位置之后開(kāi)始,返回下一個(gè)由非str2中的字符組成的單詞。當(dāng)str1中沒(méi)有這樣的單詞時(shí)返回NULL。每次調(diào)用時(shí)字符串str2可以不同。

如:

char *p;

p = strtok("The summer soldier,the sunshine patriot", " ");

printf("%s", p);

do {

p = strtok("\0", ", "); /* 此處str2是逗號(hào)和空格 */

if (p)

printf("|%s", p)

} while (p);

顯示結(jié)果是:The | summer | soldier | the | sunshine | patriot


名稱欄目:c語(yǔ)言數(shù)組操作庫(kù)函數(shù) c語(yǔ)言函數(shù)處理數(shù)組
URL鏈接:http://weahome.cn/article/docjihc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部