
voidstrcopy(charstr1,constcharstr2)
{
for(int i=0;str2[i]!'\0';i)
{
str1[i]=str2[i];}
str1[i]='\0';}
int strlenth(constcharstr1)
{for(int i=0;str1[i]!'\0';i)return+i;}一、strcmp函数strcmp函数是比较两个
字符串的大小,返回比较的结果。一般形式是:
i=strcmp(
字符串,字符串);其中,字符串1、字符串2均可为字符串常量或变量;
i 是用于存放比较结果的整型变量。
比较结果是这样规定的:
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值;
二、strcpy函数strcpy函数用于实现两个字符串的拷贝。一般形式是:strcpy(字符中1,字符串2)
C语言中strcmp函数是string库的常用函数。其原型代码和介绍如下:
1先说一下这个函数的实现原理,向strcmp()函数中传入两个字符串(记为str1,str2)传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1>str2则返回正数,若str1=str2则返回0,否则,则返回负数。
2下面实现代码: 3整个函数的原型中得益于“(str1!='\0')&&(str1==str2)”这一句的代码,因为这样当字符指针指向空,意味着字符串已经移动到最后了,比较结束,此时可以退出循环。而如果两个字符串不相等时,则此时函数也可以退出了。
这个函数要注意一下几点:
①使用(unsigned char)str1而不是用str1。这是因为传入的参数为有符号数,有符号字符值的范围是-128~127,无符号字符值的范围是0~255,而字符串的ASCII没有负值,若不转化为无符号数这回在减法实现时出现错误。
②While循环中ret=(unsigned char)str1-(unsigned char)str2) && str1,最后与上str1也可以换成str2,因为前面已经做了相减,无论哪个先为‘\0’都会退出。因为最后与上str1是为了判断str1是否结束,即是否为‘\0’。③这个函数没有判断参数为NULL时的情况,所以当传入NULL时程序会崩溃。网上看别人说商业化代码都会在调用strcmp前先判断是否为NULL,所以可以不用判断NULL;我在VC6上测试stringh中的strcmp(NULL,NULL),程序也会崩溃。这里可以根据实际情况来决定。
-strcmp函数
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
规则:
当s1<s2时,返回为负数;
当s1=s2时,返回值= 0;
当s1>s2时,返回正数。
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
你是问strcmp函数么?
strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:
strcmp(字符串1,字符串2);
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值;
那么,字符中的大小是如何比较的呢来看一个例子。
实际上,字符串的比较是比较字符串中各对字符的ASCII码。
原文地址:

