strncmp( )函数返回值是什么

作者&投稿:达翟 (若有异议请与网页底部的电邮联系)
字符串比较函数strcmp()和strncmp()~

比较一下:
函数原型:extern int strcmp(const char *s1,const char * s2);
int strncmp(char *str1, char *str2, int maxlen);
可以看出strncmp多一个参数maxlen,区别就在这里,这个表示的是比较字符串的前maxlen长度的字符

两者返回值也不同:
strcmp,当s1<s2时,返回负数
当s1==s2时,返回0
当s1>s2时,返回正数
strncmp:如果前maxlen字节完全相等,返回值就=0;
如果在前maxlen字节比较过程中,出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n])。

strcmp(S1,S2):寻找S1和S2是否完全匹配,S1和S2没有顺序的区分。
例: s= 'wooden';
strcmp(s,'wood') returns 0
strcmp(s,'wooden') returns 1
strcmp('wooden',s) returns 1
strcnmp(S1,S2,n):寻找S1和S2的前n个字符是否完全匹配,S1和S2没有顺序的区分。
例: s= 'wooden';
strncmp(s,'wood',4) returns 1
strncmp(s,'wood',5) returns 0
strncmp(s,'wooden',4) returns 1
strncmp('wooden',s,4) returns 1
strcmpi(S1,S2)与strncmpi(S1,S2,n)与上面分别对应的strcmp(S1,S2)与strncmp(S1,S2,n)完全相同,唯一的区分是匹配时不区分大小写。

strncmp( )函数返回值:如果返回值 < 0,则表示 str1 小于 str2。如果返回值 > 0,则表示 str2 小于 str1。如果返回值 = 0,则表示 str1 等于 str2。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。其函数声明为int strncmp ( const char *
str1, const char * str2, size_t n )。

功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0。

扩展资料:

strncmp函数的功能比较:

(1)strncmp函数

用来比较s1和s2字符串的前n个字符。如果两个字符串相等的话,strncmp将返回0。如果s1是s2的一个子串的话,s1小于s2。

(2)strcmp函数

同样用于比较两个字符串 ,设这两个字符串为str1,str2。若str1==str2,则返回零;若str1 > str2,则返回正数;若str1< str2,则返回负数。

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



自己查一下,网上有的!!!

函数名: strncmp
  功 能: 串比较
  用 法: int strncmp(char *str1, char *str2, int maxlen);
  说明:此函数功能即比较字符串str1和str2的前maxlen个字符。如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n])。

strncmp函数是指定比较前maxlen个字符。
strncmp( )函数返回值:
此函数功能即比较字符串str1和str2的前maxlen个字符。如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则依次比较str1和str2的前n位,设i(i<n)为两字符串首次的不同位,则返回(str1[i]-str2[i])。
函数原型:int strncmp(char *str1, char *str2, int maxlen);
参数:
str1 指向第一个字符串的指针
str2 指向第二个字符串的指针
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("buffer2 is greater than buffer1\n");
elseif(ptr<0)
printf("buffer2 is less than buffer1\n");
ptr=strncmp(buf2,buf3,3);
if(ptr>0)
printf("buffer2 is greater than buffer3\n");
elseif(ptr<0)
printf("buffer2 is less than buffer3\n");
return(0);
}
运行结果:
buffer2 is greater than buffer1
buffer2 is less than buffer3


贵港市18080772347: strncmp( )函数返回值是什么
洪俊枳术: strncmp( )函数返回值:如果返回值 < 0,则表示 str1 小于 str2.如果返回值 > 0,则表示 str2 小于 str1.如果返回值 = 0,则表示 str1 等于 str2. 字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值.其函数声明为int ...

贵港市18080772347: 关于strncmp函数的 -
洪俊枳术: strncmp 原型:extern int strcmp(char *s1,char * s2,int n); 用法:#include <string.h> 功能:比较字符串s1和s2的前n个字符. 说明:当s1<s2时,返回值<0当s1=s2时,返回值=0当s1>s2时,返回值>0 举例: // strncmp.c #include <...

贵港市18080772347: 字符串比较函数strcmp()和strncmp()
洪俊枳术: int strcmp(const char *s1,const char * s2);比较s1,s2二个字符串的大小. int strncmp(char *str1, char *str2, int maxlen);比较s1,s2二个字符串,前maxlen字符的大小. 当maxlen为s1,s2中字符串最长长度时,相当于strcmp.

贵港市18080772347: 函数strcmp("assbb","ASSBB")的返回值是0,还是/0 -
洪俊枳术: 原型:extern int strcmp(const char *s1,const char * s2);用法:#include <string.h>功能:比较字符串s1和s2.一般形式:strcmp(字符串1,字符串2)说明:当s1<s2时,返回值<0当s1=s2时,返回值=0当s1>s2时,返回值>0 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止.如:"A"<"B" "a">"A" "computer">"compare" 所以,strcmp("assbb","ASSBB")返回1.

贵港市18080772347: C++中怎样比较两个字符串的大小 -
洪俊枳术: 头文件: #include <string.h> 用 strcmp函数或strncmp函数. 函数原型: int strcmp ( const char * str1, const char * str2 ); int strncmp ( const char * str1, const char * str2, size_t num ); 返回值 0, 两字符串一样. 返回值 大于 0, str1 大于 str2. 返回值 小于 0, str1 小于 str2.

贵港市18080772347: 求详解:strncmp函数 -
洪俊枳术: /* * 函数名:strncmp * 返回值类型:int * 功能:字符串比较 *参数:const char * cs:待比较字符串 * const char * ct :比较目标字符串 * count :比较目标字符串的前count个char */ int strncmp(const char * cs,const char * ct,size_t count) { register ...

贵港市18080772347: strncmp(str1, str2, strlen(str1))==0 这个什么意思啊 -
洪俊枳术: 函数原型 int strncmp(char *str1, char *str2, int maxlen); 此函数用来比较字符串str1和str2的前maxlen个字符.如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n]) 这里strncmp(str1, str2, strlen(str1))==0,就是判断字符串str2是否以字符串str1开头,如果是,该表达式为真,否则为假

贵港市18080772347: if(!strncmp(b, "男", 2)) -
洪俊枳术: 这个函数的意思是比较b的前两个字符是不是等于“男”,如果是则函数返回0,取反之后为真,意思就是如果b的前两个字符==“男”,则执行if下面的语句,如果不相等,则不执行.

贵港市18080772347: C语言字符串函数问题. -
洪俊枳术: 下面是第二种方案,它防止函数修改字符串.注意防止两个字,就是说明这个函数里不需要修改字符串.它的本意是告诉你,如果你在写一个函数时不会修改它的内容,最好使用 const 来定义,就算你不小时改到了内容,编译的时候会报错告诉你错误的修改了,仅仅是为了禁止在函数内修改而已

贵港市18080772347: 一个选择题 大家帮帮忙吧 谢谢 -
洪俊枳术: 楼主给俺看完啊,不然俺白辛苦了.搞错了没?这基础都这么好…… 选择C.c语言里数组是不可以用“=”整体付值的.字符串是一串连续的内存,在很多性子和数组都很像,但字符串有他的特别的地方,那就是可以使用字符串函数.b选项可...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网