
strlen(chara):求a中字符的个数,不包括最后的
\0;
sizeof是求a占的内存字节数。a=strcmp(chara,charb):比较两个字符串
。(a=0,a=b),(a<0,a<b),(a>0,a>b);
strcpy(chara,charb):把b的内容拷贝给a;
substr(strat,length):返回从strat为起始位置长度为length的一个字符串;
strrev(chara)把字符串a的所有字符的顺序颠倒过来(不包括空字符null);
strcat(chara,charb)把字符串b连接到字符串a尾部。
#include<iostreamh>
#include<stringh>
void
main()
{
char
a="test1";
char
b="test12";cout<<strlen(a)<<endl;//此处
输出5,是由test1\0得出,\0不计算
cout<<sizeof(a)<<endl;//此处输出4,a为指针,占四个字节
char
c[20]="test123";
int
result
=strcmp(a,b);
cout<<
result<<endl;//
此处输出为-1
char
p1=strcat(c,b);
cout
<<p1<<endl;//此处输出为test123test12,要注意c必须要有足够的空间容纳b
char
p2=strcpy(c,a);
cout<<p2<<endl;//此处输出为test1
char
p0=strrev(c);
cout<<p0<<endl;//此处输出为1tset
}
。
int
strcmp(char
src,char
dst)
函数功能:
比较两个字符串是否相等。
函数解析:
这个函数,在VC的库函数中的定义如下:
int
__cdecl
strcmp
(
const
char
src,
const
char
dst
)
{
int
ret
=
0
;
while(
!
(ret
=
(unsigned
char
)src
-
(unsigned
char
)dst)
&&
dst)
++src,
++dst;
if
(
ret
<
0
)
ret
=
-1
;
else
if
(
ret
>
0
)
ret
=
1
;
return(
ret
);
}
我们需要留意的是这个函数的循环部分,
while(
!
(ret
=
(unsigned
char
)src
-
(unsigned
char
)dst)
&&
dst)
++src,
++dst;VC的库函数似乎非常喜欢在while循环的判断条件
中做一些处理(strcpy等函数的定义中也可看到这样的循环语句),下面我们来分析一下这样做的妙处。
首先,在第一次进行循环条件的判定之前,不管这个循环条件是否满足,都会执行一次这个处理(用src的值减去dst的值)。这和do~while循环有一定的相似性。
do
{
ret
=
(unsigned
char)src
-
(unsigned
char)dst;
src++;
dst++;
}while(
(0=ret)
&&
dst
);
再者,它又比do~while循环多做了一次处理。当循环的最后一次条件判断,不满足循环条件时,do~while直接跳出了,而将处理写在判断条件中,在最后一次判断条件不满足时也会做一次处理。因为将处理内容放在while循环的判断条件中时,是先做处理,再做判断,然后才使变量递增;而do~while循环的顺序是先做处理,再做变量递增,最后做条件判断(循环比前者少做了一次);while循环的顺序是先做判断,再做处理,最后做变量递增。这中间的顺序不同导致的循环次数不同,功能执行语句执行的次数也各不相同。
strcmp
—
二进制安全字符串比较
说明
int
strcmp(
string
$str1
,
string
$str2
)
注意该比较区分大小写。
参数
str1第一个字符串。
str2第二个字符串。
返回值
如果
str1小于
str2,返回负数;如果
str1大于
str2,返回正数;二者相等则返回
0。(相等时返回0)
示例:
<php
$var1="Hello";
$var2="Hello";
if(strcmp($var1,$var2)==0)
{echo'相等';
}
else
{
echo'不相等';
}
>
strcasecmp
—
二进制安全比较字符串(不区分大小写)
int
strcasecmp(string$str1,string$str2)
str1
第一个字符串。
str2
第二个字符串。
返回值:
如果
str1
小于
str2
返回
<
0;
如果
str1
大于
str2
返回
>
0;如果两者相等,返回
0。
示例
:
<php
$var1="Hello";
$var2="hello";
if(strcasecmp($var1,$var2)==0){
echo'$var1
is
equal
to
$var2
inacase-insensitive
string
comparison';
}
比较的话,使用strcmp(s1,s2);
若是只要比较前n个字符,则strncmp(s1,s2,n);
若是忽略大小写,则stricmp(s1,s2)


评论列表(0条)