作业帮 > 综合 > 作业

strncmp( )函数返回值是什么

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/09 07:23:30
strncmp( )函数返回值是什么
#include   #include   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 1\n");
strncmp( )函数返回值是什么
自己查一下,网上有的!
函数名:strncmp
  功 能:串比较
  用 法:int strncmp(char *str1,char *str2,int maxlen);
  说明:此函数功能即比较字符串str1和str2的前maxlen个字符.如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n]).
再问: 谢谢!看到了,就是这有点不明白str1[n]-str2[n】 比如说n=3 char*str1=abcde ; char*str2=abcdf; 你说如何计算?c语言底子比较薄多多指教!!
再答: 话说我也是第一次接触这个函数,我写了个程序看了一下。。。 #include void main() { char *str1="ddddefg"; char *str2="abcdefg"; int a; a=strncmp(str1,str2,3); printf("%d",a); } 1、如果str1=abcdefg,那么返回值为0, 2、若str1=abddefg,那么返回值为1, 3、若str1=dbcdefg,那么返回值为3, 4、若str1=ddddefg,那么返回值依然为3, 5、若str1=beddefg,那么返回值依然为1 由以上我认为,应该先比较第一位,若第一位不同,返回第一位的差值;若第一位相同,比较第二位,若第二位不同,返回第二位的差值,若第二位相等,比较第三位.......
再问: 谢谢!能不能再给解决一个问题 #if _CONF_DMA_EN #else SFRPAGE=ASC0_PAGE; AD0EN=1; if else 之间没有语句?
再答: #if与#else是条件编译,与我们平时程序里面的用法有所不同! 在这里先对#if指令中的常量表达式进行计算,若常量表达式的值为非0,则将其后的程序段包含到源文件中来(若if else 之间没有语句,那么应该是不用包含语句进来,我想应该是可行的。),否则,将#else后面的程序段包含进来!!