методы сравнения строк с числами - PullRequest
1 голос
/ 17 февраля 2020

У меня были некоторые проблемы со строками. Теперь проблема состоит в том, чтобы проверить, является ли IP действительным или нет. например 255.6.13.4. IP хранится в строке. Теперь я должен проверить, находятся ли числа l ie между 0 и 255. Есть ли способ разделить ip и сравнить его с числами или любым другим способом. заранее спасибо

1 Ответ

1 голос
/ 17 февраля 2020

Используйте stringstreams и std::getline(), имеет параметр-разделитель.

Ссылка на живой образец

#include <iostream>
#include <sstream>
#include <vector>

int main()
{
    std::string str = "123.231.0.43";

    std::stringstream test(str);
    std::string temp;
    int temp_int;
    std::vector<int> addr_elements; //int vector, you can use a string vector if you prefer

    while (std::getline(test, temp, '.')) //split by delimiter '.'
    {   

        std::stringstream ssint(temp);
        ssint >> temp_int;     //string to int
        addr_elements.push_back(temp_int); //now you have a vector of integers
    }

    for(int i : addr_elements){ //test print the vector
        std::cout << i << " ";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...