首页 > 解决方案 > 打印一次出现的字符串数组的第一个元素

问题描述

我有一个包含名称的数组,我需要打印出只出现一次的名字。例如,我有以下名称:

乔、安迪、阿尔伯特、安迪、泰勒、阿尔伯特。

程序应该打印出 Joe(如果没有正确答案,则打印出一个空行),因为那是第一个出现一次的。

到目前为止,这是我的程序:

#include <iostream>

using namespace std;

int main()
{
int size;
cin >> size;
string trash;

string arr[size];

for (int i=0; i<size; i++)
{
    cin >> arr[i];
}

getline(cin,trash);

string first;
for (int i=0; i<size; i++)
{
   if ( arr[i] != arr[i+1] )
    first = arr[i];
}

cout << first << endl;
}

标签: c++arraysstring

解决方案


这是我的版本:

#include <iostream>
using namespace std;
int main()
{
int size;
cin >> size;
// string trash;
string arr[size];
for (int i=0; i<size; i++){
    cin >> arr[i];
}
// getline(cin,trash);
string first;
for (int i=0; i<size; i++)
{
    first = arr[i];
    for (int j = 0; j < size; ++j){
        if ( arr[i] == arr[j] && i!=j)
            first = "";
    }
    if (first == arr[i])
        break;
}

cout << first << endl;
}

推荐阅读