如何在C++中比较字符
C语言中的char是用来表示字符数据类型的关键字。 char的内存大小为1个字节,包含数字、字母和字母数字字符。我们可以使用以下2种不同的方式在C中比较字符:
- 使用ASCII值进行比较。
- 使用内置函数。
1. 使用ASCII值进行比较
由于每个字符都有唯一的ASCII值,所以我们可以使用此属性进行字符比较。让我们通过一个例子来看看。
// C程序比较
// 使用ASCII值的字符
// Values
#include <stdio.h>
// 主要代码
int main()
{
// 声明2个字符
char first = 'a';
char second = 'b';
char third = 'a';
// 比较首字符和
// 第二个字符
// 相等
if (first == second)
printf("%c和%c相等\n",
first, second);
else
printf("%c和%c不相等\n",
first, second);
// 比较第二和
// 第三个字符
// 相等
if (first == third)
printf("%c和%c相等\n",
first, third);
else
printf("%c和%c不相等\n",
first, third);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
// 主要代码
int main()
{
// 声明2个字符
char first = 'a';
char second = 'b';
char third = 'a';
// 比较首字符和
// 第二个字符
// 相等
if (first == second){
cout<<first<<"和"<<second<<"相等\n";
}
else{
cout<<first<<"和"<<second<<"不相等\n";
}
// 比较第二和
// 第三个字符
// 相等
if (first == third)
cout<<first<<"和"<<third<<"相等\n";
else
cout<<first<<"和"<<third<<"不相等\n";
return 0;
}
输出
a和b不相等
a和a相等
2.使用strcmp函数(内置函数)
strcmp是由C中的库提供的一种功能。它是一个用于比较字符串但可用于比较字符的函数。
语法
strcmp(& ele1,& ele2); // ele1和ele2是要比较的两个元素
参数
- ele1- 表示元素1(字符串)。
- ele2- 表示元素2(字符串)。
将两个元素插入进行比较。
返回类型: strcmp返回一个整数值,该值根据比较后获得的结果而定。
- 如果两者相等,则返回0。
- 否则返回-1。
下面是使用strcmp比较字符的C程序:
// C程序比较
// 使用strcmp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 主要代码
int main()
{
// 声明2个字符
char first[] = "b";
char second[] = "b";
char third[] = "a";
// 比较首字符和
// 第二个字符
if (strcmp(first, second) == 0)
printf("%s和%s相等\n",
first, second);
else
printf("%s和%s不相等\n",
first, second);
// 比较第二和
// 第三个字符
if (strcmp(first, third) == 0)
printf("%s和%s相等\n",
first, third);
else
printf("%s和%s不相等\n",
first, third);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
// Driver code
int main()
{
// 声明两个字符
char first[] = "b";
char second[] = "b";
char third[] = "a";
// 比较第一个和第二个字符
if (strcmp(first, second) == 0)
cout<<first<<" 和 "<<second<<" 相等\n";
else
cout<<first<<" 和 "<<second<<" 不相等\n";
// 比较第二个和第三个字符
if (strcmp(first, third) == 0)
cout<<first<<" 和 "<<third<<" 相等\n";
else
cout<<first<<" 和 "<<third<<" 不相等\n";
return 0;
}
输出
b 和 b 相等
b 和 a 不相等
时间复杂度: O(1).
辅助空间: O(1).