strrchr函数用法(求strcmp c++中的用法详细说明)
本文目录
- 求strcmp c++中的用法详细说明
- C语言中定义的__FILE__使用,如何只出现该文件名,而不显示路径
- C库函数中strrchr函数的定义是什么
- 从后往前截取字符串 php函数
- php 中的strstr()与strchr()的区别
求strcmp c++中的用法详细说明
函数名: strcmp 功 能: 串比较 用 法: int strcmp(char *str1, char *str2); 看Asic码,str1》str2,返回值 》 0;两串相等,返回0 程序例: #include 《string.h》 #include 《stdio.h》 int main(void) { char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int ptr; ptr = strcmp(buf2, buf1); if (ptr 》 0) printf("buffer 2 is greater than buffer 1n"); else printf("buffer 2 is less than buffer 1n"); ptr = strcmp(buf2, buf3); if (ptr 》 0) printf("buffer 2 is greater than buffer 3n"); else printf("buffer 2 is less than buffer 3n"); return 0; }/*下面再给你其他相关的函数应用*/函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include 《stdio.h》 #include 《string.h》 int main(void) { char string; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%sn", string); return 0; } 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: #include 《string.h》 #include 《stdio.h》 int main(void) { char destination; char *blank = " ", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf("%sn", destination); return 0; } 函数名: strchr 功 能: 在一个串中查找给定字符的第一个匹配之处 用 法: char *strchr(char *str, char c); 程序例: #include 《string.h》 #include 《stdio.h》 int main(void) { char string; char *ptr, c = ’r’; strcpy(string, "This is a string"); ptr = strchr(string, c); if (ptr) printf("The character %c is at position: %dn", c, ptr-string); else printf("The character was not foundn"); return 0; }函数名: strncmpi 功 能: 将一个串中的一部分与另一个串比较, 不管大小写 用 法: int strncmpi(char *str1, char *str2, unsigned maxlen); 程序例: #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; }函数名: strcpy 功 能: 串拷贝 用 法: char *strcpy(char *str1, char *str2); 程序例: #include 《stdio.h》 #include 《string.h》 int main(void) { char string; char *str1 = "abcdefghi"; strcpy(string, str1); printf("%sn", string); 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; }函数名: strcmpi 功 能: 将一个串与另一个比较, 不管大小写 用 法: 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 功 能: 串比较 用 法: int strncmp(char *str1, char *str2, int maxlen); 程序例: #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 1n"); else printf("buffer 2 is less than buffer 1n"); ptr = strncmp(buf2,buf3,3); if (ptr 》 0) printf("buffer 2 is greater than buffer 3n"); else printf("buffer 2 is less than buffer 3n"); return(0); }函数名: strncmpi 功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写 用 法: int strncmpi(char *str1, char *str2); 程序例: #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 1n"); if (ptr 《 0) printf("buffer 2 is less than buffer 1n"); if (ptr == 0) printf("buffer 2 equals buffer 1n"); return 0; }函数名: strncpy 功 能: 串拷贝 用 法: char *strncpy(char *destin, char *source, int maxlen); 程序例: #include 《stdio.h》 #include 《string.h》 int main(void) { char string; char *str1 = "abcdefghi"; strncpy(string, str1, 3); string = ’’; printf("%sn", string); return 0; }函数名: strnicmp 功 能: 不注重大小写地比较两个串 用 法: 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; 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 = "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, *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 = "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 = "rFna koBlrna d"; char target; 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 }
C语言中定义的__FILE__使用,如何只出现该文件名,而不显示路径
可以用宏定义来实现去除文件名中的路径名。
因为windows和linux下,文件名中的路径分隔符号不同,windows中是"/",而linux中是"/",所以,采用的宏不同:
#include 《string.h》 //strrchr()函数所需头文件windows:#define filename(x) strrchr(x,’\\’)?strrchr(x,’\\’)+1:xlinux:#define filename(x) strrchr(x,’/’)?strrchr(x,’/’)+1:x调用:printf("filename:%s\n", filename(__FILE__) );
相关函数说明:
函数原型:char *strrchr(const char *s, int c);
函数功能:The strrchr() function returns a pointer to the last occurrence of the character 【c】 in the string 【s】.函数返回一个指向最后一次出现在字符串s中的字符c的位置指针,如果c不在s中,返回NULL。
PS:linux中提供了相应的函数:basename(s),用来获取不带路径的文件名。
C库函数中strrchr函数的定义是什么
其实那个叫”实现“,不叫定义。定义是标准干的事。
各个C运行时库(C Library)有不同的实现(implementation)。
这里列举的是uClibc和glibc。
微软Visual C++ 的C库是不开源滴。
函数原型(定义):
extern char * strrchr (const char *s, int c);
uClibc 实现:(string/strrchr.c)
/* * Copyright (C) 2002 Manuel Novoa III * Copyright (C) 2000-2005 Erik Andersen 《andersen@uclibc.org》 * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */#include "_string.h"#ifdef WANT_WIDE# define Wstrrchr wcsrchr#else# define Wstrrchr strrchr#endifWchar *Wstrrchr(register const Wchar *s, Wint c){register const Wchar *p;p = NULL;do {if (*s == (Wchar) c) {p = s;}} while (*s++);return (Wchar *) p;/* silence the warning */}#ifndef WANT_WIDElibc_hidden_weak(strrchr)# ifdef __UCLIBC_SUSV3_LEGACY__weak_alias(strrchr,rindex)# endif#endif
GNU libc 实现:(string/strrchr.c)
/* Copyright (C) 1991-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see 《*/#include 《string.h》#undef strrchr/* Find the last occurrence of C in S. */char *strrchr (const char *s, int c){ const char *found, *p; c = (unsigned char) c; /* Since strchr is fast, we use it rather than the obvious loop. */ if (c == ’\0’) return strchr (s, ’\0’); found = NULL; while ((p = strchr (s, c)) != NULL) { found = p; s = p + 1; } return (char *) found;}#ifdef weak_alias#undef rindexweak_alias (strrchr, rindex)#endiflibc_hidden_builtin_def (strrchr)
从后往前截取字符串 php函数
用strrchr这个PHP自带的函数,就是从后面取字符串。然后用substr把逗号去掉,就可以了。$str=substr(strrchr($string,’,’),1);
php 中的strstr()与strchr()的区别
strchr()和strstr()是同义函数。功能效用完全一样。echo strstr( ’abc@123.com’, ’@’); //默认返回查找值@之后的尾部,@123.comecho strstr(’abc@123.com’, ’@’, TRUE); //参数设定true, 返回查找值@之前的首部,abc
更多文章:
极品时刻表不能用了吗(为什么我的电脑不能使用极品列车时刻表)
2024年7月23日 17:24
坦克世界盒子更新之后插件不能用了!怎么办?坦克世界,哪个插件比较好用啊
2024年6月5日 21:03
植物大战僵尸西游版正版下载(怎么下载到电脑植物大战僵尸西游版)
2024年7月8日 14:55
火狐搜索入口(Mozillafirefox火狐浏览器主页网址)
2024年4月13日 15:05