代码如下:
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
string sidelength;
cout << "Perimeter of Square" << endl;
cout << "Enter length of one side: ";
getline(cin, sidelength);
cout << sidelength * 4 << endl;
return 0;
}
运行时,这是错误消息:
错误:不匹配'运算符*'(操作数类型是'std::__cxx11::字符串{aka std::__cxx11::basic_string
如何修复此错误并使程序正确运行?
如果确实要将字符串乘以一个数字,可以重载运算符*:
#include <cmath>
#include <iostream>
#include <cctype>
#include <string>
std::string operator*(const std::string &s,int x) {
std::string result;
try {
result = std::to_string(stoi(s)*x);
} catch(const std::invalid_argument&) {
result="UND";
}
return result;
}
std::string operator*(const std::string &s,double x) {
std::string result;
try {
result = std::to_string(stof(s)*x);
} catch(const std::invalid_argument&) {
result="UND";
}
return result;
}
int main()
{
std::string input("1");
input = input * 5.32;
std::cout << input << std::endl;
input = input * 2;
std::cout << input << std::endl;
return 0;
}
get line函数将字符串作为第二个参数,但您希望获得整数/双精度/浮点作为输入。所以不要使用getline。只要运行下面的代码,它就会解决您的问题。
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
int sidelength;
cout << "Perimeter of Square" << endl;
cout << "Enter length of one side: ";
cin >> sidelength;
cout << sidelength * 4 << endl;
return 0;
}
问题内容: 好的,这很愚蠢,但是wtf还在继续吗? 我在Servlet中有一个String变量,它接受参数的值,并基于该值进行测试以执行某些操作,但是该方法不起作用。问题是什么? 在控制台上,System.out.println向我显示了动作的价值是“某物” 问题答案: 您的第二个比较是错误的。您还应该使用代替,例如: 该运算符比较 引用 的(字符串)对象和正常情况下 等于 字符串不自动具有相同的
注意:位操作中的位置是反过来的,offset过大,则会在中间填充0,比如 SETBIT bit 0 1,此时bit为10000000,此时再进行SETBIT bit 7 1,此时bit为10000001。offset最大2^32-1。 GETBIT key offset / SETBIT key offset value 设置某个索引的位为0/1 bitcount 对位进行统计 bitop 对1个
前言 忙活了一个礼拜,终于等到周末,可以空下来写点东西。 之前已经完成《数值运算》和《布尔运算》,这次轮到介绍字符串操作 。咱们先得弄明白两个内容: 什么是字符串? 对字符串有哪些操作? 下面是"在线新华字典"的解释: 字符串:简称“串”。有限字符的序列。数据元素为字符的线性表,是一种数据的逻辑结构。在计算机中可有不同的存储结构。在串上可进行求子串、插入字符、删除字符、置换字符等运算。 而字符呢?
字符串操作 函数 char * rt_strstr (const char *s1, const char *s2) 判断字符串 rt_uint32_t rt_strcasecmp (const char *a, const char *b) 忽略大小写比较字符串 char * rt_strncpy (char *dst, const char *src, rt_ubase_
incr key 对key的值做加加操作,并返回新的值。注意incr一个不是int的value会返回错误,incr一个不存在的key,则设置key为1。范围为64有符号,-9223372036854775808~9223372036854775807。 decr key 同上,但是做的是减减操作,decr一个不存在key,则设置key为-1 incrby key integer 同incr,加指定
最大字符串为512M,但是大字符串非常不建议。