C++ реализация алгоритма сопоставления строкC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C++ реализация алгоритма сопоставления строк

Сообщение Anonymous »

Я реализую алгоритм сопоставления строк для базы данных имен пользователей. Мой метод принимает существующую базу данных имен пользователей и новое имя пользователя, которое хочет человек, и проверяет, занято ли это имя пользователя. если он принят, метод должен вернуть имя пользователя с номером, которого нет в базе данных.
Пример:

Код: Выделить всё

"Justin","Justin1", "Justin2", "Justin3"
Введите «Джастин»
Возвращает «Джастин4», поскольку Джастин и Джастин имеют номера 1 до 3 уже заняты.
Я уже писал этот код на Java, а теперь для практики пишу его на C++. Однако у меня есть несколько проблем:
  • Как сравнить две строки? Я пробовал strcmp и некоторые другие, но всегда получаю сообщение об ошибке: невозможно преобразовать std::string в const char* для аргумента 2.
  • Как объединить целое число и строку? В Java это было так же просто, как использовать оператор +.
  • В моей основной функции написано, что функции сопоставления нет. вызовите Username::NewMember(std::string, std::string). почему он не распознает newMember в основном?

    Код: Выделить всё

       #include
    #include
    using namespace std;
    
    class Username {
    public:
    
    string newMember(string existingNames, string newName){
    
    bool found = false;
    bool match = false;
    string otherName = NULL;
    
    for(int i = 0; i < sizeof(existingNames);i++){
    if(strcmp(existingNames[i], newName) == 0){
    found = true;
    break;
    }
    
    }
    if(found){
    for(int x = 1;  ; x++){
    match = false;
    for(int i = 0; i < sizeof(existingNames);i++){
    if(strcmp(existingNames[i],(newName + x)) == 0){
    match = true;
    break;
    }
    
    }
    if(!match){
    otherName = newName + x;
    break;
    }
    
    }
    
    return otherName;
    
    }
    
    else return newName;
    
    }
    
    int main(){
    
    string *userNames = new string[4];
    userNames[0] = "Justin";
    userNames[1] = "Justin1";
    userNames[2] = "Justin2";
    userNames[3] = "Justin3";
    
    cout 
    
    Подробнее здесь: [url]https://stackoverflow.com/questions/18297024/c-implementation-of-string-matching-algorithm[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»