首页技术strcmp的用法? strcmp函数原型

strcmp的用法? strcmp函数原型

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

今天给各位分享strcmp的用法的知识,其中也会对 strcmp函数原型进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

strcmp的用法? strcmp函数原型

strcmp()函数的用法是怎样的

strcmp函数用法:

strcmp()用来比较字符串(区分大小写),其原型为:int strcmp(const char*s1, const char*s2);s1, s2为需要比较的两个字符串。

字符串大小的比较是以ASCII

码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0

则再继续比较下个字符,若差值不为0则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

举例:

strcmp的用法? strcmp函数原型

#include<string.h>

main(){

char*a="aBcDeF";

char*b="AbCdEf";

char*c="aacdef";

char*d="aBcDeF";

strcmp的用法? strcmp函数原型

printf("strcmp(a, b):%d

", strcmp(a, b));

printf("strcmp(a, c):%d

", strcmp(a, c));

printf("strcmp(a, d):%d

", strcmp(a, d));

}

输出结果:

strcmp(a, b): 32

strcmp(a, c):-31

strcmp(a, d): 0

扩展资料:

strcmp使用规则:

一、当两个字符串不相等时,C标准没有规定返回值会是1或-1,只规定了正数和负数。有些实现会返回1或-1,但将返回值与1或-1做比较的人,都是不合格的程序。

二、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。

参考资料来源:百度百科—strcmp

strcmp()函数的用法是什么

strcmp函数用于两个字符串的比较,具体用法如下:

1、strcmp函数接受两个字符串类型的参数传入,根据比较结果返回一个int类型的值。

2、若返回结果的值小于 0,则表示在ASCII码上, str1字符串小于 str2字符串。

3、若返回结果返回值大于0,则代表 str2字符串小于 str1字符串。

4、只有当返回值为0时,两个字符串才是相同的。

扩展资料:

该函数只能用于比较字符串,不能比较数字等其他形式的参数,否则会报错。

根据ANSI的标准,函数的返回值为正数,负数,0。不同的C返回的数值会有所不同。当两个字符串不相等时,C的标准没有规定返回值会是 1或-1,只规定了正数和负数。

通常情况下,会将两个字符的 ASCII码之差作为比较结果由函数值返回。因此使用函数进行逻辑判断时应特别注意。

参考资料:

strcmp-百度百科

求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

}

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

ai孙燕姿 好汉歌,AI孙燕姿为什么会突然这么火ai全能助手免费版?十大免费ai工具大全