有关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];
}
看下 是这个意思不
代码如下, 如有帮助给个采纳 :
#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;
}