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)。
举例:
#include<string.h>
main(){
char*a="aBcDeF";
char*b="AbCdEf";
char*c="aacdef";
char*d="aBcDeF";
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
}
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!