strchr(strstr和strchr区别)
老铁们,大家好,相信还有很多朋友对于strchr和strstr和strchr区别的相关问题不太懂,没关系,今天就由我来为大家分享分享strchr以及strstr和strchr区别的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
strchr函数有什么用法最后输出的结果是什么
1、功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。
2、输出的结果:cd
函数原型:char*strchr(const char*str, int c)
参数:str--要被检索的 C字符串。c--在 str中要搜索的字符。
strrchr(a,'c')//在被检索的 C字符串“a”即“abcd”中搜索字符“c”
扩展资料
strchr函数的实现:
char* strchr(char*s, char c)
{
while(*s!='\0'&&*s!= c)
{
++s;
}
return*s==c? s: NULL;
}
参考资料:百度百科- 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[10];
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[25];
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[15];
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[10];
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[10];
char*str1="abcdefghi";
strncpy(string, str1, 3);
string[3]='';
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[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
}
c++ string 怎么用
用法和步骤:
1.定义和构造初始化
string提供了很多构造函数,可以以多种方式来初始化string字符串。
2.赋值,拼接字符串
string重载了=++=等多种运算符,让字符串组合拼接更简单。
3.访问字符操作
string可以按数组方式,以下标来访问。还可以用at()函数访问指定的字符。
4.可以使用 STL的接口
可以把 string理解为一个特殊的容器,容器中装的是字符。
5.比较操作==!=>>=<<= compare等
string的比较操作,按字符在字典中的顺序进行逐一比较。在字典前面的字符小于后面的字符。
6.查找 find rfind
string中除了find、rfind,还有find_first_of等函数也提供了强大的查找功能。
7.除了string中的find函数外,char[]数组也有强大的查找函数
C++中有strstr、strchr等也有查找功能。函数说明如下:
char*strstr( const char*str, const char*substr);返回指针,指向substr在字符串str中首次出现的位置。
char*strchr( const char*str, int ch);返回指针,指向 str中字符ch首次出现的位置。
8.与 char[ ]的相互转换
copy(),返回指针,赋值给char[ ]数组名;
c_str(),返回 const类型的指针;
data(),将内容以字符数组的形式返回。
9.分割字符串
常用 strtok和 substr来分割字符串。
10.string大小分配函数
capacity(),返回容器在它已经分配的内存中可以容纳多少元素;
resize(Container::size_type n),强制把容器改为容纳n个元素。
11.string中的字符替换、删除操作。
12.char[ ]常用的比较、拼接字符串功能
任意字符查找:char*strpbrk( const char*str1, const char*str2);
内存拷贝:void*memcpy( void*to, const void*from, size_t count);
如果 to和 from重叠,则函数行为不确定。memset()对内存初始化。如:memset( array,'\0', sizeof(array));这是将数组的所以元素设置成零的很方便的方法。
注意事项:
1.使用string,必须要包含头文件string.h
2.C++中,最好使用string来代替char[ ]
好了,文章到这里就结束啦,如果本次分享的strchr和strstr和strchr区别问题对您有所帮助,还望关注下本站哦!