首页技术strchr(strstr和strchr区别)

strchr(strstr和strchr区别)

编程之家2026-06-11930次浏览

老铁们,大家好,相信还有很多朋友对于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(strstr和strchr区别)

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区别问题对您有所帮助,还望关注下本站哦!

html5页面 index.html网页入口和平精英小五哥哥有多少粉丝?和平精英小五哥的梗