重复的名称检查功能数组
duplicate name checking function for an array
我仍然是C 的初学者,所以很抱歉,如果问题很简单。
我正在尝试构建一个要求您输入名称并将其注册到数组的程序。然后,我需要调用功能以检查是否有任何重复名称。如果有的话,它要求用户输入另一个名称。
我遇到的问题是,该功能是否被调用,无论是否有重复项,并且始终替换输入的名字。
int checking(string stringArray[5]) {
int i, z ;
for (i = 0; i < 5; i++) {
for (z = 0; z < 5; z++) {
if (z != i) { // Makes sure don't check number against itself
if (stringArray[z] == stringArray[i]) {
return i;
}
else {
return 0;
int main(){
for (i = 0; i < 5; i++) {
cin >> stringArray[i];
}
j = checking(stringArray);
if (j == 0) {
cout << "Please re-enter name " << ". Duplicate names are not allowed"
<<'n';
cin >> stringArray[j];
}
一些观察值(忽略语法错误,我认为这些错误不存在于您的实际代码中):
- z不需要每次从0开始,它可以从i 1开始
- 您不想在循环中返回,它将阻止您检查第一个重复的名称。而是将您的recenter语句移至循环中。
- 通常,您不想在循环中使用文字(5),而是使用变量来存储数组的长度并与之相比(这只是一般编程规则,它不会改变代码运行的方式)
您的最终检查()函数应更近:
void checking(string stringArray[5]) {
int i, z ;
// consider replacing 5 with a variable
for (i = 0; i < 5; i++) {
for (z = i+1; z < 5; z++) {
if (stringArray[z] == stringArray[i]) {
cout << "Please re-enter name " <<
". Duplicate names are not allowed" <<'n';
cin >> stringArray[z];
/* restart the loop user may have entered a */
/* second duplicate from previous entries */
i = 0;
z=i+1;
}
}
}
}
相关文章:
- C++模板功能检查唯一向量
- Vulkan 的传输队列系列功能和显卡支持:条件检查是否准确?
- winapi 中的哪个功能检查按钮是否正在关闭控制台?
- 检查两个图是否为补码的功能
- 具有检查功能的简单数字生成器,以避免重复
- 用于检查我们是否有有效数独的辅助功能
- 自定义 {fmt} 格式化函数,具有编译时格式字符串检查功能
- 模板功能以检查智能指针是否为空
- 检查数字在C 中未返回正确结果的功能
- 在C/C 中使用检查功能的Windows NT命令行代码循环
- 重复的名称检查功能数组
- 在 c++e 中使用 do-while 循环进行密码检查功能时出现错误"code will never execute"
- 支架检查功能仅测试输入的前 2 个
- 如何实现更快的状态检查功能?蟒
- 如何检查功能是否存在
- Dynamic_cast类型检查功能没有铸件
- 检查功能进入无限循环和分段错误
- 使用检查功能查找给定范围内的所有回文数
- 内置素数检查功能
- 检查功能比较问题