有关c++string的问题

有关c++的实验问题,这里需要利用c++有关string的知识完成以下的任务

都是string的问题 看来这个不熟

int wordToInt(string word) {
    if (word == "zero")    return 0;
    if (word == "one")     return 1;
    if (word == "two")     return 2;
    if (word == "three")   return 3;
    if (word == "four")    return 4;
    if (word == "five")    return 5;
    if (word == "six")     return 6;
    if (word == "seven")   return 7;
    if (word == "eight")   return 8;
    if (word == "nine")    return 9;
    if (word == "ten")     return 10;
    if (word == "eleven")  return 11;
    if (word == "twelve")  return 12;
    if (word == "thirteen")    return 13;
    if (word == "fourteen")    return 14;
    if (word == "fifteen")     return 15;
    if (word == "sixteen")     return 16;
    if (word == "seventeen")   return 17;
    if (word == "eighteen")    return 18;
    if (word == "nineteen")    return 19;
    if (word == "twenty")  return 20;
    return -1;
}

string intToWord(int num) {
    if (num < 0 || num > 20) {
        return "unknown";
    }
    string words[] = {"zero", "one", "two", "three", "four", "five", "six",
                      "seven", "eight", "nine", "ten", "eleven", "twelve",
                      "thirteen", "fourteen", "fifteen", "sixteen", "seventeen",
                      "eighteen", "nineteen", "twenty"};
    return words[num];
}

看下 是这个意思不

img

代码如下, 如有帮助给个采纳 :

#include <iostream>
#include <string>

using namespace std;

int main() {
    string num1, num2;

    while (true) {
        cout << "请输入两个数字(二十以内的整数)的英文单词,以空格分开:" << endl;
        cin >> num1 >> num2;

        // 将数字的英文单词转换为数字
        int n1 = 0, n2 = 0;
        if (num1 == "one") {
            n1 = 1;
        } else if (num1 == "two") {
            n1 = 2;
        } else if (num1 == "three") {
            n1 = 3;
        } else if (num1 == "four") {
            n1 = 4;
        } else if (num1 == "five") {
            n1 = 5;
        } else if (num1 == "six") {
            n1 = 6;
        } else if (num1 == "seven") {
            n1 = 7;
        } else if (num1 == "eight") {
            n1 = 8;
        } else if (num1 == "nine") {
            n1 = 9;
        } else if (num1 == "ten") {
            n1 = 10;
        } else if (num1 == "eleven") {
            n1 = 11;
        } else if (num1 == "twelve") {
            n1 = 12;
        } else if (num1 == "thirteen") {
            n1 = 13;
        } else if (num1 == "fourteen") {
            n1 = 14;
        } else if (num1 == "fifteen") {
            n1 = 15;
        } else if (num1 == "sixteen") {
            n1 = 16;
        } else if (num1 == "seventeen") {
            n1 = 17;
        } else if (num1 == "eighteen") {
            n1 = 18;
        } else if (num1 == "nineteen") {
            n1 = 19;
        } else if (num1 == "twenty") {
            n1 = 20;
        } else {
            cout << "输入无效,请重新输入。" << endl;
            continue;
        }

        if (num2 == "one") {
            n2 = 1;
        } else if (num2 == "two") {
            n2 = 2;
        } else if (num2 == "three") {
            n2 = 3;
        } else if (num2 == "four") {
            n2 = 4;
        } else if (num2 == "five") {
            n2 = 5;
        } else if (num2 == "six") {
            n2 = 6;
        } else if (num2 == "seven") {
            n2 = 7;
        } else if (num2 == "eight") {
            n2 = 8;
        } else if (num2 == "nine") {
            n2 = 9;
        } else if (num2 == "ten") {
            n2 = 10;
        } else if (num2 == "eleven") {
            n2 = 11;
        } else if (num2 == "twelve") {
            n2 = 12;
        } else if (num2 == "thirteen") {
            n2 = 13;
        } else if (num2 == "fourteen") {
            n2 = 14;
        } else if (num2 == "fifteen") {
            n2 = 15;
        } else if (num2 == "sixteen") {
            n2 = 16;
        } else if (num2 == "seventeen") {
            n2 = 17;
        } else if (num2 == "eighteen") {
            n2 = 18;
        } else if (num2 == "nineteen") {
            n2 = 19;
        } else if (num2 == "twenty") {
            n2 = 20;
        } else {
            cout << "输入无效,请重新输入。" << endl;
            continue;
        }

        // 计算乘积
        int result = n1 * n2;

        // 将结果转换为数字的英文单词
        string resultStr;
        switch (result) {
            case 1:
                resultStr = "one";
                break;
            case 2:
                resultStr = "two";
                break;
            case 3:
                resultStr = "three";
                break;
            case 4:
                resultStr = "four";
                break;
            case 5:
                resultStr = "five";
                break;
            case 6:
                resultStr = "six";
                break;
            case 7:
                resultStr = "seven";
                break;
            case 8:
                resultStr = "eight";
                break;
            case 9:
                resultStr = "nine";
                break;
            case 10:
                resultStr = "ten";
                break;
            case 11:
                resultStr = "eleven";
                break;
            case 12:
                resultStr = "twelve";
                break;
            case 13:
                resultStr = "thirteen";
                break;
            case 14:
                resultStr = "fourteen";
                break;
            case 15:
                resultStr = "fifteen";
                break;
            case 16:
                resultStr = "sixteen";
                break;
            case 17:
                resultStr = "seventeen";
                break;
            case 18:
                resultStr = "eighteen";
                break;
            case 19:
                resultStr = "nineteen";
                break;
            case 20:
                resultStr = "twenty";
                break;
            default:
                cout << "计算结果超出范围。" << endl;
                continue;
        }

        // 输出结果
        cout << "结果为:" << result << " (" << resultStr << ")" << endl;
    }

    return 0;
}


根据您提供的图片,任务是利用C++的string知识完成以下任务。

首先,我们需要定义一个名为reverseString的函数,该函数接受一个string类型的参数,并返回将输入字符串反转后的结果。

下面是一个示例的reverseString函数实现:

#include <string>

std::string reverseString(const std::string& input) {
    std::string reversed;
    for (int i = input.length() - 1; i >= 0; --i) {
        reversed.push_back(input[i]);
    }
    return reversed;
}

这个函数通过遍历输入字符串的每个字符,并将其逆序添加到reversed字符串中来实现反转。最后,函数返回反转后的字符串。

您可以使用以下代码来测试该函数:

#include <iostream>

int main() {
    std::string input = "Hello, World!";
    std::string reversed = reverseString(input);
    std::cout << "Original string: " << input << std::endl;
    std::cout << "Reversed string: " << reversed << std::endl;
    return 0;
}

上述代码首先定义了一个字符串input,然后调用reverseString函数将其反转,并将结果存储在reversed字符串中。最后,将原始字符串和反转后的字符串打印到控制台上。

运行上述代码,输出应为:

Original string: Hello, World!
Reversed string: !dlroW ,olleH

这样,您就成功利用C++的string知识完成了将字符串反转的任务。

根据提供的图片来完成任务。

#include <iostream>
#include <string>
using namespace std;

// 将数字转换为英文单词
string getNumberWord(int num) {
    string numberWords[] = {
        "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
        "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"
    };
    if (num < 20) {
        return numberWords[num];
    } else if (num % 10 == 0) {
        return numberWords[num / 10 + 9];
    } else {
        return numberWords[num / 10 + 9] + "-" + numberWords[num % 10];
    }
}

简单的写了注释

int main() {
    int num1, num2;
    while (true) {
        // 提示用户输入两个数字
        cout << "Please enter two numbers (both less than or equal to 20): " << endl;
        cin >> num1 >> num2;
        // 对用户输入的数字做出错误处理
        if (num1 <= 20 && num2 <= 20) {
            // 计算结果
            int result = num1 * num2;
            // 将结果数字转换为英文单词
            string resultWord = getNumberWord(result);
            // 将两个数字转换为英文单词
            string num1Word = getNumberWord(num1);
            string num2Word = getNumberWord(num2);
            // 输出结果
            cout << num1Word << " times " << num2Word << " equals " << result << " (" << resultWord << ")" << endl;
        } else {
            // 提示用户重新输入
            cout << "Please enter numbers less than or equal to 20." << endl;
        }
    }
    return 0;
}