Форум программистов, компьютерный форум CyberForum.ru

Сравнение переменных разных типов - C++

Восстановить пароль Регистрация
 
necronth
0 / 0 / 0
Регистрация: 04.04.2014
Сообщений: 13
09.07.2014, 22:36     Сравнение переменных разных типов #1
Здравствуйте. Столкнулся с проблемой не совпадения типов данных. Есть переменная string str, которая, к примеру, имеет значение "1245". Необходимо в переменную string str2 записать все остальные цифры без нуля (то есть 36789). Сам код написал, но проблема в том, что при сравнении string и int (счетчик цикла) выводит всегда false. Как можно исправить/избежать это? Вот сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int x = 0; x < 9; x++)
    for(int y = 0; y < 9; y++)
        if(number[x][y] != "x")
            trueNumber[x][y] = number[x][y];
        else
            for(int i = 1; i < 10; i++)
                for(int j = 0; j < int(newNumber[x][y].length()); j++)
                {
                    if(newNumber[x][y][j] == i)
                        continue;
                    else if(j - 1 == newNumber[x][y].length())
                        trueNumber[x][y] += i;
                }
number, newNumber и trueNumber - строки. Заранее извиняюсь, если неправильно назвал или описал какие-то вещи, так как я самоучка. Также буду благодарен, если вы напишете готовый код.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2014, 22:36     Сравнение переменных разных типов
Посмотрите здесь:

C++ Сравнение типов
Сложение разных типов C++
C++ Матрица из разных типов
C++ Сравнение типов шаблонных классов
Хранение разных типов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
deniska91
54 / 3 / 3
Регистрация: 17.05.2014
Сообщений: 72
09.07.2014, 23:15     Сравнение переменных разных типов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
    string s1 = "1457";
    string s2;
    char ch[2];
    for (int i = 1; i < 10; i++)
    {
        itoa(i, &ch, 10);
        if (s1.find_first_of(ch) == string::npos) s2 += ch;
    }
    cout << s2;
    return 0;
}
necronth
0 / 0 / 0
Регистрация: 04.04.2014
Сообщений: 13
09.07.2014, 23:54  [ТС]     Сравнение переменных разных типов #3
Большое спасибо!
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.07.2014, 00:06     Сравнение переменных разных типов #4
deniska91, можно обойтись и без нестандартной itoa:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main() {
    
    std::string src = "1245";
    
    for( int i=1; i<10; ++i )
    {
        const char ch = '0' + i;
        if( src.find(ch) == std::string::npos )
        {
            std::cout << ch; // Выводим сразу для демонстрации
        }
    }
    return 0;
}
deniska91
54 / 3 / 3
Регистрация: 17.05.2014
Сообщений: 72
10.07.2014, 00:10     Сравнение переменных разных типов #5
Tulosba, согласен, не додумался
Yandex
Объявления
10.07.2014, 00:10     Сравнение переменных разных типов
Ответ Создать тему
Опции темы

Текущее время: 20:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru