对比字符串

该博客介绍了如何在C语言中使用strcmp函数来比较两个字符串是否相等。通过示例代码展示了当输入的密码与预设的123456匹配时,程序会输出输入正确,否则提示输入错误。这强调了在编程中正确比较字符串的重要性,以及避免直接使用等号进行字符串比较的错误做法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设,我们要对比两个字符串是否相同,那该怎么对比呢?

if (arr1 == "123456" ) ?

判断两个字符串是否相等,不能使用等号判断

应该使用strcmp(string compare  字符串比较)

我们来用实际代码演示 一下。

#include<stdio.h>
#include<string.h>            //strcmp必备头文件
int main()
{
	int a = 0;
	char password[20] = "";   //这里一定要给[]内设置大小,否则因为只初始化了\0 导致数组大小为1 
	while (1)
	{
	scanf("%s", password);    //因为password本身是个数组名,数组名本身就是个指针,所以不用加 &
		if (strcmp(password, "123456") == 0)
		{                     //strcmp中   如果两个字符串相同,则返回值为0。
			printf("输入正确\n");
			break;
		}
		printf("输入错误\n");
	}
	return 0;
}

### C语言中的字符串比较 在C语言中,直接使用`==`运算符来比较两个字符串的内容是不合适的,因为这只会比较指针地址而不是实际的字符串内容。为了正确地比较两个字符串的内容,应该使用标准库函数`strcmp()`[^1]。 #### `strcmp()` 函数介绍 `strcmp()` 是用来逐个字符对比两个字符串的标准库函数。该函数定义于 `<string.h>` 头文件之中。其原型如下: ```c int strcmp(const char *s1, const char *s2); ``` 此函数接受两个参数:指向要被比较的第一个零终止字节串(即字符串)的指针`s1` 和第二个零终止字节串的指针`s2`。返回值取决于第一个不同字符之间的差值;如果两字符串完全相同,则返回0;若遇到不同的字符或者其中一个先结束的情况则停止并返回差异结果[^3]。 当调用者需要区分大小写敏感性的字符串匹配时,可以考虑使用这个函数来进行判断。对于忽略大小写的场景下,还可以选用其他变体形式如`strcasecmp()`, 不过需要注意的是并非所有的编译器都支持后者[^2]。 #### 示例代码展示如何使用 `strcmp()` 下面给出一段简单的例子演示怎样运用上述提到的函数完成基本的任务——检查两个字符串是否相等: ```c #include <stdio.h> #include <string.h> int main(void){ char str1[] = "hello"; char str2[] = "world"; if (strcmp(str1, str2) == 0){ printf("The strings are equal.\n"); }else{ printf("The strings are not equal.\n"); } return 0; } ``` 这段程序会输出"The strings are not equal." 因为 `"hello"` 并不等于 `"world"`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值