C++ 转换;“字符串”;至;int";用一个「/&引用;中间

C++ 转换;“字符串”;至;int";用一个「/&引用;中间,c++,C++,我希望用户键入当前日期,例如: 25/05/2011 (所有内容放在一起,只是用/分隔) 然后我想把这个输入分成3个int变量D是天,M是月,Y是年 以下是到目前为止我得到的信息: #include <iostream> using namespace std; string TOGETHER; int D, M, Y; int main() { cin >> TOGETHER; /* What should I do here?

我希望用户键入当前日期,例如:

25/05/2011
(所有内容放在一起,只是用
/
分隔)

然后我想把这个输入分成3个
int
变量
D
是天,
M
是月,
Y
是年

以下是到目前为止我得到的信息:

#include <iostream>
using namespace std;

string TOGETHER;
int D, M, Y;

int main()
{
    cin >> TOGETHER;

    /*
        What should I do here?
    */

    cout << "\n";
    cout << D << "/" << M << "/" << Y << "\n";

    return 0;
}
#包括
使用名称空间std;
串在一起;
int D,M,Y;
int main()
{
cin>>一起;
/*
我在这里该怎么办?
*/

你可以试试看。或者你可以试试看。或者你可以试试看。或者你可以试试看。或者你可以试试看。或者你可以试试看。或者你可以在
上一起使用
sscanf
上。c_str()
,或者一起使用
atoi
将字符串拆分成以“/”作为分隔符的子字符串。查找
或者类似的内容


或者您可以只使用
scanf
进行输入,但不建议这样做(更难验证有效输入)。

您可以一起使用
上的
sscanf
。c_str()
,或者一起使用
atoi
将字符串拆分为以“/”作为分隔符的子字符串。查找
或类似内容

或者您可以使用scanf进行输入,但不建议这样做(验证有效输入比较困难)。

您应该使用:

std::向量DMY;
boost::split(DMY,合起来,boost::是(“/”)的任意值);
D=boost::词法转换(DMY[0]);
M=boost::词法转换(DMY[1]);
Y=boost::词法转换(DMY[2]);
您应该使用:

std::向量DMY;
boost::split(DMY,合起来,boost::是(“/”)的任意值);
D=boost::词法转换(DMY[0]);
M=boost::词法转换(DMY[1]);
Y=boost::词法转换(DMY[2]);

步骤1:使用“/”拆分字符串,并在向量中对其进行排序

split( strLatLong , '|' ,  Vec_int) ; //Function to call

std::vector<std::int> split(const std::string &s, char delim, std::vector<int> &elems)
 {
     std::stringstream ss(s);
     int item;
     while(std::getline(ss, item, delim))
     {
         elems.push_back(item);
     }

     return elems;
 }

cout << vec_int[0]<<vec_int[1]<<vec_int[2];
split(strLatLong,|,Vec_int);//要调用的函数
std::vector split(常量std::string&s、char-delim、std::vector&elems)
{
标准::stringstream ss(s);
国际项目;
while(std::getline(ss,item,delim))
{
元素推回(项目);
}
返回元素;
}

cout步骤1:使用“/”拆分字符串并在向量中对其进行排序

split( strLatLong , '|' ,  Vec_int) ; //Function to call

std::vector<std::int> split(const std::string &s, char delim, std::vector<int> &elems)
 {
     std::stringstream ss(s);
     int item;
     while(std::getline(ss, item, delim))
     {
         elems.push_back(item);
     }

     return elems;
 }

cout << vec_int[0]<<vec_int[1]<<vec_int[2];
split(strLatLong,|,Vec_int);//要调用的函数
std::vector split(常量std::string&s、char-delim、std::vector&elems)
{
标准::stringstream ss(s);
国际项目;
while(std::getline(ss,item,delim))
{
元素推回(项目);
}
返回元素;
}
cout在这里(阅读注释以了解解释):

#包括
#包括
//将字符串转换为任意值(int)
//现在还不必担心细节,只需关注使用。
//它的用法如下:int myint=fromstr(mystring);
样板
T fromstr(const std::string&s)
{
std::istringstream流;
T;
流>>t;
返回t;
}
串在一起;
int D,M,Y;
int main()
{
std::字符串温度;
int pos=0;
int len=0;
//获取用户输入
性病::cin>>一起;
//确定长度
for(len=0;加在一起[len]!='/';len++)
;
//从字符串中提取日部分
温度=在一起的次级变压器(位置、长度);
//将temp转换为整数,并放入D
D=fromstr(温度);
//将pos增加len+1,因此它现在是“/”后面的字符
pos+=len+1;
//确定长度
for(len=0;加在一起[len]!='/';len++)
;
//从字符串中提取月份部分
温度=在一起的次级变压器(位置、长度);
//将temp转换为整数,并将其转换为M
M=fromstr(temp);
//将pos增加len+1,因此它现在是“/”后面的字符
pos+=len+1;
//确定长度
for(len=0;加在一起[len]!='/';len++)
;
//从字符串中提取年份部分
温度=在一起的次级变压器(位置、长度);
//将temp转换为整数,并输入Y
Y=fromstr(温度);
std::cout在这里(阅读注释以获取解释):

#包括
#包括
//将字符串转换为任意值(int)
//现在还不必担心细节,只需关注使用。
//它的用法如下:int myint=fromstr(mystring);
样板
T fromstr(const std::string&s)
{
std::istringstream流;
T;
流>>t;
返回t;
}
串在一起;
int D,M,Y;
int main()
{
std::字符串温度;
int pos=0;
int len=0;
//获取用户输入
性病::cin>>一起;
//确定长度
for(len=0;加在一起[len]!='/';len++)
;
//从字符串中提取日部分
温度=在一起的次级变压器(位置、长度);
//将temp转换为整数,并放入D
D=fromstr(温度);
//将pos增加len+1,因此它现在是“/”后面的字符
pos+=len+1;
//确定长度
for(len=0;加在一起[len]!='/';len++)
;
//从字符串中提取月份部分
温度=在一起的次级变压器(位置、长度);
//将temp转换为整数,并将其转换为M
M=fromstr(temp);
//将pos增加len+1,因此它现在是“/”后面的字符
pos+=len+1;
//确定长度
for(len=0;加在一起[len]!='/';len++)
;
//从字符串中提取年份部分
温度=在一起的次级变压器(位置、长度);
//将temp转换为整数,并输入Y
Y=fromstr(温度);

STD:你选择了3种语言。你想要哪种语言?一个代码样本只能是C++——我删除了其他的标签。你标记了3种语言。你想要哪种语言?一种解决方案?代码示例只能是C++。我删除了其他的标签。如果你用了这个,请把它标记为你的答案:)一定要把它标记为你。r如果你用的是这个,回答:)
#include <iostream>
#include <string>

// Converts string to whatever (int)
// Don't worry about the details of this yet, focus on use.
// It's used like this: int myint = fromstr<int>(mystring);
template<class T>
    T fromstr(const std::string &s)
{
     std::istringstream stream(s);
     T t;
     stream >> t;
     return t;
}

std::string TOGETHER;
int D, M, Y;

int main()
{
    std::string temp;
    int pos = 0;
    int len = 0;


    // Get user input
    std::cin >> TOGETHER;


    // Determine length
    for(len = 0; TOGETHER[len] != '/'; len++)
        ;

    // Extract day part from string
    temp = TOGETHER.substr(pos, len);

    // Convert temp to integer, and put into D
    D = fromstr<int>(temp);


    // Increase pos by len+1, so it is now the character after the '/'
    pos += len + 1;

    // Determine length
    for(len = 0; TOGETHER[len] != '/'; len++)
        ;

    // Extract month part from string
    temp = TOGETHER.substr(pos, len);

    // Convert temp to integer, and put into M
    M = fromstr<int>(temp);


    // Increase pos by len+1, so it is now the character after the '/'
    pos += len + 1;

    // Determine length
    for(len = 0; TOGETHER[len] != '/'; len++)
        ;

    // Extract year part from string
    temp = TOGETHER.substr(pos, len);

    // Convert temp to integer, and put into Y
    Y = fromstr<int>(temp);


    std::cout << "\nDate:\n";
    std::cout << "D/M/Y: " << D << "/" << M << "/" << Y << "\n";
    std::cout << "M/D/Y: " << M << "/" << D << "/" << Y << "\n";

    return 0;
}