词条 | 字符串函数 |
释义 | c(strcpy strcat strcpy strlen strncat strncpy strcspn strdup stricmp strerror strcmp strncmp strnicmp strnset strpbrk strrchr strrev strset strspn strstr strtod strtok strtol strupr swab isalpha) cstrcpy原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest结尾处字符(NULL)的指针。 举例: // strcpy.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char d[20]; clrscr(); strcpy(d,s); printf("%s",d); getchar(); return 0; } strcat原型:extern char *strcat(char *dest,char *src); 用法:#include <string.h> 功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\\0')并添加'\\0'。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 举例: // strcat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" View"; clrscr(); strcat(d,s); printf("%s",d); getchar(); return 0; } strcpy原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 举例: // strcpy.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char d[20]; clrscr(); strcpy(d,s); printf("%s",d); getchar(); return 0; } strlen原型:extern int strlen(char *s); 用法:#include <string.h> 功能:计算字符串s的长度 说明:返回s的长度,不包括结束符NULL。 举例: // strlen.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; clrscr(); printf("%s has %d chars",s,strlen(s)); getchar(); return 0; } strncat原型:extern char *strncat(char *dest,char *src,int n); 用法:#include <string.h> 功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\\0')并添加'\\0'。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 举例: // strncat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" View WinIDE Library"; clrscr(); strncat(d,s,5); printf("%s",d); getchar(); return 0; } strncpy原型:extern char *strncpy(char *dest, char *src, int n); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。 说明: 如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。 如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 举例: // strncpy.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char *d="Hello, GGV Programmers"; char *p=strdup(s); clrscr(); textmode(0x00); // enable 6 lines mode strncpy(d,s,strlen(s)); printf("%s\",d); strncpy(p,s,strlen(d)); printf("%s",p); free(p); getchar(); return 0; } strcspn功 能: 在串中查找第一个给定字符集内容的段 用 法: int strcspn(char *str1, char *str2); 程序例: #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 %dn", length); return 0; } strdup功 能: 将串拷贝到新建的位置处 用 法: char *strdup(char *str); 程序例: #include <stdio.h> #include <string.h> #include <alloc.h> int main(void) { char *dup_str, *string = "abcde"; dup_str = strdup(string); printf("%sn", dup_str); free(dup_str); return 0; } stricmp功 能: 以大小写不敏感方式比较两个串 用 法: int stricmp(char *str1, char *str2); 程序例: #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 1n"); if (ptr < 0) printf("buffer 2 is less than buffer 1n"); if (ptr == 0) printf("buffer 2 equals buffer 1n"); return 0; } strerror功 能: 返回指向错误信息字符串的指针 用 法: char *strerror(int errnum); 程序例: #include <stdio.h> #include <errno.h> int main(void) { char *buffer; buffer = strerror(errno); printf("Error: %sn", buffer); return 0; } strcmp功 能: 将一个串与另一个比较 用 法: int strcmpi(char *str1, char *str2); 程序例: #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 1n"); if (ptr < 0) printf("buffer 2 is less than buffer 1n"); if (ptr == 0) printf("buffer 2 equals buffer 1n"); return 0; } strncmp功 能: 把串中的一部分与另一串中的一部分比较 (前n个字符) 用 法: int strncmp(char *str1, char *str2,int maxlen); 程序例: #include <string.h> #include <stdio.h> int main(void) { char *buf1 = "BBBccc", *buf2 = "bbbccc"; int ptr; ptr = strncmp(buf2,buf1,3); if (ptr > 0) printf("buffer 2 is greater than buffer 1n"); if (ptr < 0) printf("buffer 2 is less than buffer 1n"); if (ptr == 0) printf("buffer 2 equals buffer 1n"); return 0; } strnicmp功 能: 不注重大小写地比较两个串的前n个字符 用 法: int strnicmp(char *str1, char *str2, unsigned maxlen); 程序例: #include <string.h> #include <stdio.h> int main(void) { char *buf1 = "BBBccc", *buf2 = "bbbccc"; int ptr; ptr = strnicmp(buf2, buf1, 3); if (ptr > 0) printf("buffer 2 is greater than buffer 1n"); if (ptr < 0) printf("buffer 2 is less than buffer 1n"); if (ptr == 0) printf("buffer 2 equals buffer 1n"); return 0; } strnset功 能: 将一个串中的所有字符都设为指定字符 用 法: char *strnset(char *str, char ch, unsigned n); 程序例: #include <stdio.h> #include <string.h> int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz"; char letter = 'x'; printf("string before strnset: %sn", string); strnset(string, letter, 13); printf("string after strnset: %sn", string); return 0; } strpbrk功 能: 在串中查找给定字符集中的字符 用 法: char *strpbrk(char *str1, char *str2); 程序例: #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: %cn", *ptr); else printf("strpbrk didn't find character in setn"); return 0; } strrchr功 能: 在串中查找指定字符的最后一个出现 用 法: char *strrchr(char *str, char c); 程序例: #include <string.h> #include <stdio.h> int main(void) { char string[15]; char *ptr, c = 'r'; strcpy(string, "This is a string"); ptr = strrchr(string, c); if (ptr) printf("The character %c is at position: %dn", c, ptr-string); else printf("The character was not foundn"); return 0; } strrev功 能: 串倒转 用 法: char *strrev(char *str); 程序例: #include <string.h> #include <stdio.h> int main(void) { char *forward = "string"; printf("Before strrev(): %sn", forward); strrev(forward); printf("After strrev(): %sn", forward); return 0; } strset功 能: 将一个串中的所有字符都设为指定字符 用 法: char *strset(char *str, char c); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10] = "123456789"; char symbol = 'c'; printf("Before strset(): %sn", string); strset(string, symbol); printf("After strset(): %sn", string); return 0; } strspn功 能: 在串中查找指定字符集的子集的第一次出现 用 法: int strspn(char *str1, char *str2); 程序例: #include <stdio.h> #include <string.h> #include <alloc.h> int main(void) { char *string1 = "1234567890"; char *string2 = "123DC8"; int length; length = strspn(string1, string2); printf("Character where strings differ is at position %dn", length); return 0; } strstr功 能: 在串中查找指定字符串的第一次出现 用 法: char *strstr(char *str1, char *str2); 程序例: #include <stdio.h> #include <string.h> int main(void) { char *str1 = "Borland International", *str2 = "nation", *ptr; ptr = strstr(str1, str2); printf("The substring is: %sn", ptr); return 0; } strtod功 能: 将字符串转换为double型值 用 法: double strtod(char *str, char **endptr); 程序例: #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 %lfn", input, value); return 0; } strtok功 能: 查找由在第二个串中指定的分界符分隔开的单词 用 法: char *strtok(char *str1, char *str2); 程序例: #include <string.h> #include <stdio.h> int main(void) { char input[16] = "abc,d"; char *p; /* strtok places a NULL terminator in front of the token, if found */ p = strtok(input, ","); if (p) printf("%sn", p); /* A second call to strtok using a NULL as the first parameter returns a pointer to the character following the token */ p = strtok(NULL, ","); if (p) printf("%sn", p); return 0; } strtol功 能: 将串转换为长整数 用 法: long strtol(char *str, char **endptr, int base); 程序例: #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 = %ldn", string, lnumber); return 0; } strupr功 能: 将串中的小写字母转换为大写字母 用 法: char *strupr(char *str); 程序例: #include <stdio.h> #include <string.h> int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz", *ptr; /* converts string to upper case characters */ ptr = strupr(string); printf("%sn", ptr); return 0; } swab功 能: 交换字节 用 法: void swab (char *from, char *to, int nbytes); 程序例: #include <stdlib.h> #include <stdio.h> #include <string.h> char source[15] = "rFna koBlrna d"; char target[15]; int main(void) { swab(source, target, strlen(source)); printf("This is target: %sn", target); return 0; } PS:isalpha()是字符函数,不是字符串函数, isalpha原型:extern int isalpha(int c); 用法:#include <ctype.h> 功能:判断字符c是否为英文字母 说明:当c为英文字母a-z或A-Z时,返回非零值,否则返回零。 举例: // isalpha.c #include <syslib.h> #include <ctype.h> #include <stdio.h> main() { int c; clrscr(); // clear screen printf("Press a key"); for(;;) { c=getchar(); clrscr(); printf("%c: %s letter",c,isalpha(c)?"is":"not"); } return 0; // just to avoid warnings by compiler } pascal1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn. 例:concat('11','aa')='11aa'; 2. 求子串。 Copy(s,I,L) 从字符串s中截取第I个字符开始后的长度为l的子串。 例:copy('abdag',2,3)='bda' 3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。 delete(大串。开始位置,个数)删除子串 例:s:='abcde';delete(s,2,3);结果s:='ae' delete('1234567',5,2)='12347' delete('abcded123',1,1)='bcded123' 4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置 例:s:=abc;insert('12',s,2);结果s:='a12bc' 5. 求字符串长度 length(s) 例:length('12abc')=5 6. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0. 例:pos('ab','12abcd')=3 7. 字符的大写转换。Upcase(ch) 求字符ch的大写体。 例:upcase('a')='A' 8. 数值转换为数串。 过程 Str(x,s) 把数值x化为数串s. 例:str(12345,s); 结果s='12345' 9. 数串转换为数值。 过程val(s,x,I) 把数串s转化为数值x,如果成功则l=0,不成功则I为无效字符的序数 例:val('1234',x,I);结果 x:=1234 10.求字符序号。ord(a)求char型字符a的ASCII码。 例:ord('A')=65. |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。