C ++ Index Array Print&删除字符串名称Array Print

时间:2013-11-30 06:24:56

标签: c++ arrays string indexing

我很难找到教授指定的问题。我相信我已经找到了下面列出的3个项目的第二部分,但是根本无法弄清楚如何做第1或第3部分。请帮忙!非常感谢你提前。


写一个程序。

在main()中创建一个名为firstNameArray的字符串数组,初始化为7个名字

Jim,Tuyet,Ann,Roberto,Crystal,Valla,Mathilda

编写第一个函数,该函数将单个名称和数组传递给函数,并让它搜索数组以查看firstNameArray中的名称。如果找到,它将返回找到名称的数组索引,否则返回数字7。 (可能需要将其他参数传递给函数)

在主程序中编写代码以调用该函数。检查返回值,并使用索引号打印名称,或打印“未找到名称”。

编写第二个函数,它将打印数组中的所有名称。将数组传递给函数。 (需要将几个参数传递给函数)

在主程序中编写代码以调用此函数。

编写第三个将从数组中删除名称的函数。在尝试删除名称之前,首先检查名称是否在数组中(使用第一个函数)。你没有减少阵列的大小......只需要一个空白。 (可能需要将其他参数传递给函数)。 在调用此函数后调用Print the Whole数组。

打印出阵列......如果该点是空白的,请不要打印它。


到目前为止,第二部分我已经得到了这个:


#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <string>
using namespace std;


void printArray(string array[], int size);

int main()
{
string firstNameArray[7];

firstNameArray[0] = "Jim";
firstNameArray[1] = "Tuyet";
firstNameArray[2] = "Ann";
firstNameArray[3] = "Roberto";
firstNameArray[4] = "Crystal";
firstNameArray[5] = "Valla";
firstNameArray[6] = "Mathilda";

printArray(firstNameArray, 7);

system("pause");
return 0;
}

void printArray(string array[], int size){
for (int i = 0; i < size; i++){
    cout << array[i] << endl;
}
}

1 个答案:

答案 0 :(得分:0)

试试这个。

#include "stdafx.h"

#include <string>
#include <iostream>

int FindName(std::string* names, std::string name, int size) {
    for (int i = 0; i < size; i++) {
        if(names[i] == name)
            return i;
    }

    return size;
}

void PrintNames(std::string* names, int size) {
    for (int i = 0; i < size; i++) {
        std::cout << names[i] << std::endl;
    }
}


void DeleteName(std::string* names, std::string name, int size) {
    if(FindName(names, name, size) == size)
        return;

    for (int i = 0; i < size; i++) {
        if(names[i] == name)
            names[i] = "\0";
    }
}


int main()
{
    std::string firstNameArray[7];

    firstNameArray[0] = "Jim";
    firstNameArray[1] = "Tuyet";
    firstNameArray[2] = "Ann";
    firstNameArray[3] = "Roberto";
    firstNameArray[4] = "Crystal";
    firstNameArray[5] = "Valla";
    firstNameArray[6] = "Mathilda";

    int index = FindName(firstNameArray, "Ann", 7);

    if(index == 7)
        std::cout << "Name not found" << std::endl;
    else
        std::cout << std::to_string(index) << std::endl;

    PrintNames(firstNameArray, 7);
    DeleteName(firstNameArray, "Ann", 7);

    std::cout << "\n";

    PrintNames(firstNameArray, 7);

    ::getchar();
    return 0;
}