如何搜索字符串中的字符?

吉姆

我正在编写将短日期(mm / dd / yyyy)转换为长日期(2014年3月12日)并打印出日期的程序。

该程序必须在以下用户输入下工作:10/23/2014 9/25/2014 12/8/2015 1/1/2016

我的程序正在使用第一个用户输入,但是我不确定如何继续处理在字符串的第一个位置没有“ 0”的用户输入。

#include <iostream>
#include <string>

using namespace std;

int main() 
{
    string date; 
    cout << "Enter a date (mm/dd/yyyy): " << endl;
    getline(cin, date);

    string month, day, year;

    // Extract month, day, and year from date
    month = date.substr(0, 2);
    day = date.substr(3, 2);
    year = date.substr(6, 4);

    // Check what month it is 
    if (month == "01") {
        month = "January";
    }
    else if (month == "02") {
        month = "February";
    } 
    else if (month == "03") {
        month = "March";
    } 
    else if (month == "04") {
        month = "April";
    } 
    else if (month == "05") {
        month = "May";
    } 
    else if (month == "06") {
        month = "June";
    } 
    else if (month == "07") {
        month = "July";
    } 
    else if (month == "08") {
        month = "August";
    } 
    else if (month == "09") {
        month = "September";
    } 
    else if (month == "10") {
        month = "October";
    } 
    else if (month == "11") {
        month = "November";
    } 
    else {
        month = "December";
    }

    // Print the date
    cout << month << " " << day << "," << year << endl;
    return 0;
}

我将不胜感激任何帮助。

托比·麦克纳莫比

就像Red Serpent在评论中写道:搜索/using std::string::find,例如

#include <iostream>

int main()
{
    std::string date = "09/28/1983";

    int startIndex = 0;
    int endIndex = date.find('/');
    std::string month = date.substr(startIndex, endIndex);

    startIndex = endIndex + 1;
    endIndex = date.find('/', endIndex + 1);
    std::string day = date.substr(startIndex, endIndex - startIndex);

    std::string year = date.substr(endIndex + 1, 4);

    std::cout << month.c_str() << " " << day.c_str() << "," << year.c_str() << std::endl;

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章