比较 C++ 中的二维字符数组
Comparing 2-D char array in C++
using namespace std;
#include<iostream>
int main()
{
int n,i,j;
int b[10];
char a[50][50];
cout<<"Dictionaryn";
cout<<"Enter the no. of enteries you want to enter:";
cin>>n;
// Function 1 & 2 : To add keys and values
for(i=0;i<n;i++)
{
cout<<"Enter the name:";
cin>>a[i];
for(j=0;j<i;)
{
if(a[j]==a[i])
{
cout<<"no";
cin>>a[i];
}
else
{
j++;
}
}
cout<<"Enter the marks:";
cin>>b[i];
}
return 0;
}
如果我们输入 2 个条目...哪个同名...那为什么它不进入if(a[i]==a[j])
???就像如果 a[i]='rohan' amd a[j]='rohan' 但也一样,但它并不相等......对于初始化,我只能使用字符
数组类型对象在C++中是二等公民。例如,将两个数组与==
进行比较不会比较数组对象本身。相反,它将比较指向每个数组的第一个元素的指针。这样,如果两个数组是相同的数组对象,则它们只会与==
相等(因为这样它们的第一个元素具有相同的地址(。
如果要比较 C 样式字符串(即以 null 结尾的 char
数组(,则需要使用 strcmp
。
但是,我建议改用std::string
作为字符串。它们更容易处理 - 它们允许与==
(以及许多其他有用的函数(进行比较,并且不希望您对字符串设置任意 50 个字符的限制。
您无法比较这样的字符数组。这个比较运算符本质上是比较两个不相同的数组的地址。
为什么不直接使用 memcmp(或 memicmp - 用于大小写(,甚至更好地使用 std::string?
相关文章:
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何检查二维字符数组是否有空字
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 如何填充二维字符数组?C++
- 我如何用单词填充二维字符阵列
- 给出预定义的二维字符数组值
- 如何将二维字符类型数组逐行保存到 c 中的.txt文件中
- 二维字符数组C++
- 从C++文件中读取二维字符数组
- 将字符串复制到二维字符数组时出错
- 使用strncpy将字符串复制到二维字符数组中
- 比较 C++ 中的二维字符数组
- 给定一个二维字符矩阵,我们必须检查给定的单词是否存在于其中
- 正在将内存分配给二维字符数组,错误:从“void*”到“char**”的转换无效
- 在检查二维字符数组中的重叠时遇到麻烦
- 如何将字符变量存储为二维字符变量
- C/C++ 中的二维字符数组
- 将二维字符数组初始化为全空白时出现问题
- 对二维字符数组进行排序?C++