-
2017-10-20 16:30:48
#include <stdio.h> #include <string.h> int fun(char *a,char *b) { int i,flag=0; for(i=0;a[i]!='\0'&&b[i]!='\0';) if(a[i]==b[i]) i++; else{ flag=0; break; } if(a[i]=='\0'&&b[i]=='\0') flag=1; return flag; } int main() { char *a="12345"; char *b="1235"; int c; c=fun(a,b); printf("%d\n",c); }
更多相关内容 -
在C语言中比较两个字符串是否相等的方法
2020-09-03 10:03:01主要介绍了在C语言中比较两个字符串是否相等的方法,分别介绍了strcmp()函数和strcasecmp()函数,注意功能区分,需要的朋友可以参考下 -
c语言中如何判断两个字符串相等
2021-05-19 07:54:37该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1。所以,要判断字符串相等,可以使用。扩展资料:关于上述strcmp()函数比较字符串的例子#...可以使用库函数strcmp判断,具体如下:
strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, char *b);
该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1。
所以,要判断字符串相等,可以使用。
扩展资料:
关于上述strcmp()函数比较字符串的例子
#include
#include
int main(void)
{
char str_1[] = "abc";
char str_2[] = "abc";
char str_3[] = "ABC";
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equal to str_3.\n");
return 0;
}
-
C语言:比较两个字符串是否相等
2021-05-18 10:06:431) 使用strcmp进行比较下面通过一个例子进行演示:#include #include int main(void){char* str1 = "abc";char* str2 = "abc";if (strcmp(str1, str2) == 0) {printf("str1和str2相同!\n");}else {printf("str1和str...1) 使用strcmp进行比较
下面通过一个例子进行演示:
#include
#include
int main(void)
{
char* str1 = "abc";
char* str2 = "abc";
if (strcmp(str1, str2) == 0) {
printf("str1和str2相同!\n");
}
else {
printf("str1和str2不相同!\n");
}
return 0;
}
讲解上面的程序:
定义了一个char(字符型)的指针变量str1,并且初始化为 "abc"
定义了一个char(字符型)的指针变量str2,并且初始化为 "abc"
通过strcmp进行比较两个字符串是否相同,如果相同返回0(详细见strcmp百度百科)
?
2) strcmp的实现
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 );
}
下面进行讲解:
定义了一个int(整型)的变量ret,并且初始化为0
(unsigned char*) src 表示将src强制转换为unsigned(无符号)的char(字符型)变量 (同理dst)
*(unsigned char*) src 表示获取src中的数据(同理dst)
*(unsigned char*) src - *(unsigned char*)dst,
*(unsigned char*) src表示获取当前src的数据,(假设为"a")
*(unsigned char*)dst表示获取当前dst的数据,(假设为"a")
根据ASCII码表 "a"为65,(ASCII码表)
所以src - dst,所表示的就是 65 - 65,返回结果为0
(ret =*(unsigned char *)src - *(unsigned char *)dst),所以ret 为0
!(ret = *(unsigned char *)src - *(unsigned char *)dst),取反ret
*dst,*dst为获取dst的数据,因为每个字符串的结尾都有一个"\0"(ASCII码表中为0)
判断true和false,其实就是0为false,非0为true,所以可以得出,
如果dst到了字符串末尾,则退出循环
++src,表示将src的指针向后移动一位(同理dst)(如果这里不懂的可以看下面)
下面的if...else if则是根据ret的返回值进行返回对应的数值(详细见strcmp百度百科)
PS :(因为char、unsigned char 都只占一个字符,所以*src也就获取当前src所指向的字符)
?
3)不懂++src的可以看下
++src,表示将src的指针向后移动一位
?
好的,下面进行讲解:
假设当前src的地址为(0x00898b3c),
先说src的类型,当前src的类型为char(字符型),char所占内存大小为1字节,
所以++src后src的地址就变成了(0x00898b3d),
最后通过++src也就能遍历整个src所指向的内存地址中的数据,然后和dst比较
你们是否不懂为什么要++呢?(不懂就继续往下看吧)
首先假设src当前所指向的是 "abc" 的内存地址
当前src为(0x00898b3c),所指向的是"a"
所以*src也就是为"a",(可能你们会疑问为什么是"a")
因为char所占内存大小为1字节,
所以*src获取的数据也就只获取当前src当前所指向的内存地址的一位中的数据,
可以这样理解:
(0x00898b3c)中为"a"
(0x00898b3d)中为"b"
(0x00898b3e)中为"c"
(0x00898b3f)中为"\0"
所以++src就是不断向后移动指针进行遍历"abc"中的每个字符
?
?
?
-
C语言判断两个字符串是否相等
2016-12-29 10:45:10该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1.所以,要判断字符串相等,可以使用if(strcmp(string1, string2) == 0)如果返回为0,则...可以使用库函数strcmp比较。
strcmp是C语言比较字符串的库函数。形式为
int strcmp(char *a, char *b);
该函数会对a和b的每个字符,按照ascii码值比较,如果二者完全相同返回0;如果a的ascii码值先出现较大者,会返回1;否则返回-1.
所以,要判断字符串相等,可以使用
if(strcmp(string1, string2) == 0)
如果返回为0,则相等,否则不等。 -
C语言 判断两个字符串是否相等的函数(不区分大小写)
2022-01-03 10:34:09头文件:#include<string> 函数:int strcasecmp(const char *s1,const*s2); 示范 #include<stdio.h> #include<string.h> int main() { if(strcasecmp("hello","Hello")==0) ...} -
c如何比较两个字符 C语言中怎么判断两个字符相同
2021-05-18 10:19:46可以使用库函数strcmp判断,具体如下: strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, ...C语言中如何比较两个【字符】或者【字符串】是否相C语言中用strcmp函数比较字符和字符串是否相等。 strcmp... -
c语言比较两个字符串是否相等strcmp
2017-12-16 14:25:210 两个字符串相等 · >0 第一个字符串大于第二个字符串 ---------------------------------------------------- 在上例中,当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0。... -
C语言中两个字符串比较是否相等
2022-05-01 00:23:30C语言中两个字符串比较是否相等 -
C语言判断两个lpcwstr字符串是否相等的方法
2021-05-18 10:06:41C语言判断两个lpcwstr字符串是否相等的方法1、使用strcmp判断两个lpcwstr字符串是否相等,如果等于0就相等strcmp((_bstr_t)s1,(_bstr_t)s2);2、C++ 如何比较两个char*是否相等int lstrcmp(LPCTSTR lpString1,... -
C语言编程:从键盘上输入两个字符串,判断两个字符串是否相等。
2021-05-19 08:12:14满意答案 haoyouare 2013.06.19 采纳率:44% 等级:12 已帮助:4648人 您好:其实你的...flag) //flag=0是相等 printf ("the two string are equal."); else printf ("the two string are not equal."); } 01分享举报 -
C语言中判断两个字符串是否相同的方法
2021-05-19 08:39:01C语言中判断两个字符串是否相同的方法C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子:#include #include void main (void);void main(void){char* str_1 = ... -
C语言 strcmp()函数用法以及怎么判断两个字符串相等
2019-11-20 14:32:57strcmp();是处理字符串的,因此它在头文件string.h中 ...有个小应用判断两个字符串是否相等 if(!strcmp(串1, 串2)); 我们知道 在c语言中,非0就为真,因为-1是非0值,所以为真,所以!(-1)为假,值为0 所以 !strcm... -
C语言 判断两个字符串大小相等关系
2019-08-15 11:03:37#include<stdio.h> #include<string.h>...//比较两个字符串的大小 void main(){ printf("Enter str1,str2\n"); char str1[100],str2[100]; printf("Enter str1:"); gets(str1);... -
判断两个字符串相等
2019-10-22 20:46:35判断连个字符串相等不能用==,这样的意思是判断两个字符数组的首地址是否相等。判断相等要用strcmp(s1,s2)==0; -
C语言判断两个值相等
2018-03-15 20:23:46内置类型比较直接用==判断 字符串比较要用string.h里的函数strcmp(const char *str1,const char *str2)进行比较string.h里的函数strcmp(const char *str1,const char *str2)进行比较 struct student{ char num; ... -
C语言:strcmp比较两个字符串是否相等
2018-10-29 12:58:54#include<... //比较两个字符串是否相等,(或者说前字符串比后字符串不同的地方大几) int My_strcmp( const char *str1,const char *str2) { int tmp=0; while((tmp=*str1-*st... -
C语言中常见的两个比较字符串是否相等的函数strcmp和strncmp
2022-03-30 09:10:13函数:strcmp和strncmp strcmp 使用格式: #include <string.h> int strcmp(const char *s1, const char *s2);...即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇... -
php如何判断两个字符串是否相等
2021-03-22 19:20:31下面是php如何判断两个字符串是否相等,让我们一起来看看php如何判断两个字符串是否相等的具体内容吧!php如何判断两个字符串是否相等php判断两个字符串是否相等的方法:可以通过strncmp()函数... -
怎样运用c语言指针变量比较两个字符串是否相等?请修改
2021-05-19 07:53:43运用指针,子函数,比较两个字符串是否相等,相等返回1,否则返回0.求修改#include #include #include char bijiao(char a[21],char b[21]);//需要编写一个子函数可以用指针直接指向一个字符串吗?int n;main(){char... -
C语言判断是否相等运算符
2020-08-29 20:37:30在数学运算中,描述两个数值相等,使用的符号是...那么,C语言中,描述两个对象相等,使用的符号是“= =”,就是两个等号“=”相连,用于判断连个对象是否相等。例如 a = = b表达式,就是判断 a与b的值是否相等,则.. -
比较两个字符串是否相等(用指针完成)
2014-06-15 21:52:13使用指针来判断两个字符串是否相等 cout请分别输入两个字符串str1和str2:"; cin.getline(str1,100); cin.getline(str2,100); -
C语言中判断两数组中是否有相同的元素
2020-08-25 12:32:56下面是我在做IF语句练习时遇到的一个练习题,想要整理在博客上判断两个数组中是否有相同的元素,需要的朋友可以参考下 -
C语言比较两字符串是否相等
2017-02-27 18:17:05函数 strcmp(str1,str2) 定义在 string.h 若相等,返回0 若不等,返回ASCII码相差多少