大家好,今天小编关注到一个比较有意思的话题,就是关于c语言字符比较函数的问题,于是小编就整理了2个相关介绍c语言字符比较函数的解答,让我们一起看看吧。
C语言里面字符串函数strcmpbcmp区别?
bcmp memcmp功能相同。bcopy、bzero和bcmp是传统BSD的函数,属于POSIX标准;mem*是C90(以及C99)标准的C函数。区别在于,如果你打算把程序弄到一个符合C90/C99,但是不符合POSIX标准的平台时,后者比较有优势。
strcmp与这两者不同处在于它接受的是0结尾的字符串,比如你有2个内存区域的值分别为 0x0a, 0x00, 0x0d与0x0a, 0x00, 0x0c。那么比较这2个内存的前3个字符是否相同,strcmp就无法做到,因为到第二字符0的时候函数就任务字符串结束了。
C++编写一函数,比较两个字符串的大小,不能用strcmp?
#include<iostream>#include<cstring>usingnamespacestd;intstr_len(char*a){inti;for(i=0;a[i]!='\0';i++);i;}intstr_cmp(char*a,char*b){inta_size=str_len(a);intb_size=str_len(b);if(a_size>b_size)return1;elseif(a_size<b_size)return-1;else{for(inti=0;i<a_size;i++){if(a[i]>b[i])return1;elseif(a[i]<b[i])return-1;}}return0;}intmain(){chara_1[10]="pause";chara_2[10]="Pause";charb_1[10]="hello";charb_2[10]="ahh";cout<<"str_cmp:"<<str_cmp(a_1,a_2)<<"\t";cout<<"strcmp:"<<strcmp(a_1,a_2)<<endl;cout<<"str_cmp:"<<str_cmp(b_1,b_2)<<"\t";cout<<"strcmp:"<<strcmp(b_1,b_2)<<endl;cout<<"str_cmp:"<<str_cmp(a_1,b_2)<<"\t";cout<<"strcmp:"<<strcmp(a_1,b_2)<<endl;cout<<"str_cmp:"<<str_cmp(a_2,b_1)<<"\t";cout<<"strcmp:"<<strcmp(a_2,b_1)<<endl;system("pause");return0;}测试数据比较少,麻烦LZ自己出吧
到此,以上就是小编对于c语言字符比较函数的问题就介绍到这了,希望介绍关于c语言字符比较函数的2点解答对大家有用。