C++的strcmp函数是什么意思?下面一段程序输出的结果是什么?请教高手!

#include <iostream.h>
#include <string.h>
void main()
{ char *x1="abcdef",*x2="ab";
x1++;x2++;
cout<<strcmp(x1,x2)<<endl;
}

cmp=compare比较的意思,str=string
strcmp就是字符串比较
x1++后指向"b" x2++后也是指向"b"
不过x1是指向“bcdef”,x2是"b"
所以结果是1
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-07
strcmp 用于字符串比较。 如果返回值==0 完全匹配, >0部分匹配, -1, 完全不匹配
上面返回值应该是1,只有一个字符b匹配
第2个回答  2011-01-07
原型: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(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
一例实现代码:
#include <string.h>
#include <memcopy.h>
#undef strcmp
int
strcmp (p1, p2)
const char *p1;
const char *p2;
{
register const unsigned char *s1 = (const unsigned char *) p1;
register const unsigned char *s2 = (const unsigned char *) p2;
unsigned reg_char c1, c2;
do
{
c1 = (unsigned char) *s1++;
c2 = (unsigned char) *s2++;
if (c1 == '\0')
return c1 - c2;
}
while (c1 == c2);
return c1 - c2;
}
libc_hidden_builtin_def (strcmp)
编辑本段
应用举例

举例1:(在VC6.0中运行通过)
#include<stdio.h>
#include<string.h>
void main()
{
char string[20];
char str[3][20];
int i;
for(i=0;i<3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("\nThe largest string is %s\n",string);
}
举例2:(TC中运行通过)
// strcmp.c
#include <syslib.h>
#include <string.h>
int main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
getchar();
return 0;
}

百度不只有百度知道,百度是个搜索工具,多多利用吧
第3个回答  2011-01-07
直接敲代码运行就知道它的功能了

C++的strcmp函数是什么意思?下面一段程序输出的结果是什么?请教...
strcmp就是字符串比较 x1++后指向"b" x2++后也是指向"b"不过x1是指向“bcdef”,x2是"b"所以结果是1

C++ strcmp()
strcmp 是 C 语言标准库中的比较函数,C++ 也支持使用。函数原型接受两个字符串指针,返回值指示字符串大小关系。strcmp 函数通过比较字符串的每个字符,依据 ASCII 值判断大小,直到遇到不等字符或字符串结束符 \\0。结果可能是负数、零或正数,分别表示第一个字符串小于、等于或大于第二个。示例中,两...

c++中strcmp函数如何使用??
就是对两个字符串从左到右逐个字符相比,按ASCII值大小比较,如果出现不同字符或遇到'\\0'为止,如果全部字符相等;则认为相等,如果不相等的,按第一个不相等的字符的比较结果为准,如strmp(str,str),则函数值为0,如果strmp(stra,strb)因为a的askii小于b的,所以函数值为一个负数。

c++中strcmp函数怎么使用?
一、strcmp函数strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:i=strcmp(字符串,字符串);其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的:①字符串1小于字符串2,strcmp函数返回一个负值;②字符串1等于字符串2,strcmp函数返回零...

请问C++中 if(!strcmp(A,B)) 中的!strcmp代表什么意思
strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。当s1 > s2 时,返回值 > 0 当s1 = s2 时,返回值 = 0 当s1 < s2时,返回值 < 0 ! 为逻辑非运算符,即当值为真时改成假,值为加时改成真 在程序设计的判断真假中0为假,...

C++ strcmp函数怎么用?strcmp函数的使用方法与原理
strcmp函数用于比较两个字符数组,主要通过接受两个char*参数s1和s2。在执行过程中,strcmp函数从第一个字符开始,逐个比较两数组中字符的ASCII码。如果s1的ASCII码大于s2的ASCII码,则返回1,反之返回-1。若两数组字符ASCII码相等,则继续比较下一个字符直到数组结束。例如,对于s1 = "AbdE1" 和 s2 ...

C++中判断两个字符串是否相等,怎么判断
可以使用库函数strcmp判断,具体如下:strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, char *b);该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1。所以,要判断字符串相等,可以使用。

帮我解释下面C++程序中的strcmp的那条语句
strcmp,为c语言中的字符窜拷贝函数;上面你给的是c++代码,由于c++兼容c,所以,在此处用上了strcmp();关于strcmp:1.在c语言中,如果要用到它,者要在预定义中,包涵头文件,string.h,即:#include<string.h> 2.strcmp(),有两个参数,strcmp(a,b),其中a,b都是字符串数组名(char a[...

c++中strcmp函数怎么使用
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, ++...

求strcmp c++中的用法详细说明
函数名: strcmp 功能: 串比较 用法: int strcmp(char *str1, char *str2); 看Asic码,str1>str2,返回值 > 0;两串相等,返回0 程序例: #include <string.h> #include <stdio.h> int main(void) { char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int ptr; ptr = strcmp(buf2,...

相似回答