c语言的字符串比较函数strcmp比较的是什么?

国标一级常用字是按拼音排序的。不过从国标二级汉字开始就是笔画排序了。

strcmp不是字符串的比较函数吗?如果相等输出0,如果字符串1大于字符串2输出正数,小于则输出负数。不太理解你问的是什么意思

c语言strcmp函数用法_c语言strchr函数用法c语言strcmp函数用法_c语言strchr函数用法


c语言strcmp函数用法_c语言strchr函数用法


函数功能:比较两个字符串str1,str2.

返回两个字符串中的个不相同的字符的ASCII码之(参数1中对应的字符的ASCII码减去参数2中对应的字符的ASCI码)。

如果两个字符串相同,就返回0

对。没错。比较字符数据时,比较的就是它的ASCII码。

是的从头开始比,和字典不多

strcmp原理

void main()

1、cmp 是 compare,比较的缩写。 2、strcmp是c语言中头文件(字符串函数)中定义的一个用于对两组字符串进行比较的函数,它的返回值是int类型。 设有两组字符串cs和ct,当csct时,函数返回一个正数。 即:两个字符串自左向右逐个字符相比(按ascii值大小相比较),直到出现不同的字符或遇&★ c语言map的用法a;0&a;为止。如:"a"<"b" ,"a">"a" ,"comr">"compare" ,"comput">"comp" strcmp函数原型为:int strcmp(const char s1,const char s2);

逐个比较 字符串里对应的字符,字符的ascii码值

求教,c语言 写一个函数,实现两个字符串的比较。即自己写一个strcmp函数

b,strcmp的返回值稳定为0,取非之后为1,if判断为真,就开始执行break语句

首先要理解指针的含义,即p代表的是p[0] (p+1)代表的是p[1],

在这return dst;个基础上,我们来看上面两行代码

while((p1+i)==(p2+i))

if ((p1+i++)=='0') return(0);

注意到这一个while,也就是说这一段的作用是找到两个字符串个不相等的地方的位置,如果找到了‘0’,即找到了字符串的一位的话,就return 0,表示两个字符串相等,当两个字符串不相等退出while之后,i代表的就是他们个不相等的位置return((p1+i)-(p2+i)); 将其return出去如果大于0,则表示前字符串大,小于零表示后字符串大。

ps:我觉得第二个if判断有点片面,还要判断p2是不是查到了'0'

C语言中 memcmp 和 strcmp 函数有哪些区别

1、cprintf("Bufferbeforememset:%s/n",buffer);mp 是 compare,比较的缩写。

2、strcmp是C语言中头文件(字符串函数)中定义的一个用于对两组字符串进行比较的函数,所属文件:它的返回值是int类型。

设有两组字符串cs和ct,当csct时,函数返回一个正数。

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'0'为止。如:"A"<"B" ,"a">"A" ,"comr">"compare" ,"comput">"comp"

strcmp函数原型为:int strcmp(const char s1,const char s2);

编C语言程序:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能

strlen(char str)

{int n=0;

char p=str;

while(p++)n++;

return n;

}strcat(char str1,str2)

{char p1,p2;

p1=str1gets【1】函数:gets;

p1+=strlen(str1);

while(p2)

p1++=p2++;

retu【4】注意:本函数可以无限读取,不会判断上限,所以程序员应该确保str的空间足够大,以便在执行读作时不发生溢出。rn

}strcpy(char str1,str2)

{char p1,p2;

p1=str1;

while(p2)

p1++=p2++;

return

}strcmp(char str1,str2)

{char p1,p2;

p1=str1;

while(p2 && p1)

if((p1++)- (p2++) )return (p1++)- (p2++) ;

}其它同理!!!!!!!!!

呵呵!昨天刚答过,不会是作业吧!

C语言,使用strcmp函数时,如果比较的2个字符串是中文要怎么比较?

#include

int

strcmp(char

s1,#includechar

s2);

这里char

s1可以是一个字符串,其实该函数参数取的是字符串的首地址,一直读取到'0'结束(字符串型的末尾都有一个字符'0'),这样就把整个字符串读进去了。所以,也可以用字符串指针的形式,指针就是地址,把字符串的首地址赋值给一个指针p,那么p同样可以是此函数的参数char

s1

两种输入都正确

C语言的strcmp是什么意思?

return 0;

if( (g_token.rule_type_code, "-1") != 0)

这句是错的,修改为:

if( strcmp(g_token.rule_type_code, "-1") != 0)

strcmp函数

strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:

i=strcmp(字符串,字符串);

其中,字符串1、字符串2均可为字符串常量}输出:或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的:

①字符串1小于字符串2,strcmp函数返回一个负值;

②字符串1等于字符串2,strcmp函数返回零;

③字符串1大于字符串2,strcmp函数返回一个正值;那么,字符中的大小是如何比较的呢?来看一个例子。

实际上,字符串的比较是比较字符串中各对字符的ASCII码。首先比较两个串的个字符,若不相等,则停止比较并得出大于或小于的结果;如果相等就接着 比较第二个字符然后第三个字符等等。如果两上字符串前面的字符一直相等,像"disk"和"disks" 那样, 前四个字符都一样, 然后比较第 五个字符, 前一个字符串"disk"只剩下结束符'0',后一个字符串"disks"剩下's','0'的ASCII码小于's'的ASCII 码,所以得出了结果。因此无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'0'为止,就能得出结果。

注意:字符串是数组类型而非简单类型,不能用关系运算进行大小比较。

if("ABC">"DEF") /错误的字符串比较/

if(strcmp("ABC","DEF") /正确的字符串比较/

strcmp是比较字符串。

还有其他返回值,你应该去MSDN上仔细看看

c语言中 !strcmp(a,b)是什么意思?注意有个感叹号!

所属文件:

简单的说就是:

[cpp] view plain

strcmp是个比较函数,用法就是a>b返回1,a

C语言规定非0为真,0为。!号是取非,即把0变成1,非0变成0;

设a=5,b=4

那么a>b,返回结果为1,取非之后为0,既为.就不会执行下面的break语句。

设a=4,b=5

结果为a

只有当a和b相等时,才会执行break语句,既跳出语句。

比如a=5,b=5时。

a==

C语言编程:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和

其结果可以是1、0、-1;如果a数组ASC码值大于b数组,则为1;如果a数组ASC码值小于b数组,则为-1;如果a数组ASC码值等于b数组,则为0.

char mystrcat(char dst, char src)

const int SIZE_INC=16;

{char p = dst;

while(p++ = src++);

}char mystrcpy(char dst, char src)

{while(dst++ = src++);

}int mystrcmp(char dst, char src)

{while(dst && dst == src)

{++dst;

++src;

}return dst - src;

}int mystrlen(char dst)

{char p = dst;

return p - dst;

}int main()

{char s[32], t[32] = "HELLO,CHINA";

mystrcpy(s, "HELLO,");

puts(s);

mystrcat(s, "USA");

puts(s);

}

char strcat( char s1[], const char s2[] )

{if (s1==NULL || s2==NULL)

return NULL;

for(char p=s1+sizeof(s1)-1; s2!='0'; p++,s2++)

p = s2;

return s1;

}

{int i,j;

for(i=0;s1[i]!='0';i++);

for(j=0;s2[j]!='0';j++)

s1[i++]=s2[j];

s1[i]='0';

}void strcpy(char a[],char b[])

{int i=0,j=0;

while((a[i++]=b[j++])!='0');}

int strcmp(char s1[],char s2[])

{int i;

for(i=0;s1[i]!='0'&&s2[i]!='0';i++)

{if(s1[i]>s2[i])

return 1;

else if(s1[i]

return -1;}

if(s1[i]=='0'&&s2[i]=='0')

else if(s1[i]=='0')

return -1;

else

return 1;

}int strlen(char s[])

{int len=0 ,i;

for(i=0;s[i]!='0';i++)

len++;

return len;}

请问C语言中的这些语句gets,fgets,puts,sprintf,strcpy,strcat,strcmp,strlen的语义和用法是什么?

相同返回0.

【2】头文件:stdio.h

【3】功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在str指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。

【5】示例:

#include"stdio.h"

{char str1[5];

gets(str1);

printf("%sn",str1);

}fgets函数名: fgets

功 能: 从流中读取一字符串

用 法: char fgets(char string, int n, FILE stream);

形参注释:string结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针

序 例:

#include

#include

int main(void)

{FILE stream;

char string[] = "This is a test";

char msg[20];

/ open a file for update /

stream = fopen("DUMMY.FIL", "w+");

/ write a string into the file /

fwrite(string, strlen(string), 1, stream);

/ seek to the start of the file /

fseek(stream, 0, SEEK_SET);

/ read a string from the file /

fgets(msg, strlen(string)+1, stream);

/ display the string /

printf("%s", msg);

fclose(stream);

}fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;p2=str2;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读作,读入的字符串中包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在加'0',并以str作为函数值返回。

puts功 能: 送一字符串到流中

用 法: int puts(char string);

程序例:

#include

int main(void)

{char string[] = "This is an example output stringn";

puts(string);

}初学者要注意以下例子

#include

#include

int main(void)

{int i;

char string[20];

for(i=0;i<10;i++)

string='a';

puts(string);

getch();

}从此例中可看到puts输出字符串时要遇到'0’也就是字符结束符才停止。如上面的程序加上一句 string[10]='0';

#include

#include

int main(void)

{int i;

char string[20];

for(i=0;i<10;i++)

string='a';

string[10]='0';

puts(string);

getch();

}运行就正确了

此 外 puts 和 printf 的用法一样

==~~~

C语言编程strcmp函数的问题

void strcat(char s1[],char s2[])

如果a>b,strcmp(a,b)返回的是>0;

#include

如果a==b,strcmp(a,b)返回的是0;

如果a

你可以方便记忆成strcmp(a,b)的结果就是a-b。a比较大的话结果自然就是>0

#include

#include

int main()

{char str1[100],str2[100];

printf("input 2 strings: ");

scanf( "%s %s", str1,str2 ); /eg: hello world

if(strcmp(str1,str2)< 0)printf("str1

else if(strcmp(str1,str2) > 0)printf("str1 > str2");

else

printf("str1 == str2");

printf("n");

}

if(strcmp(str1,str2)==0)printf("str1==str2");