这是我的问题:
我编写了一个函数来检测字符串是否基于"0x ####"格式的十六进制:
int lc3_hashex(char *str)
{
int val = 0;
char *to;
to = strndup(str+2, 10);
val = sscanf(to, "%x", &val);
if (val)
{
return val;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设参数的格式为"0x ####",则返回后缀"0x"的十进制版本.但有没有内置的方式(或我只是监督的方式)获得十六进制数"0x4000"的整数值而不是整数值"4000"?
谢谢.
我有这门课:
template<typename T> class Parser
{
public:
Parser() : count(0) {}
virtual void parse(const string&);
void get_token(void);
private:
T result;
char token;
string expression;
int count;
};
Run Code Online (Sandbox Code Playgroud)
现在这个类不是通用的,如果result有人说,a double,我会用这种方法来检测数字.
while((strchr("1234567890.",token))
{
/* add token to a "temp" string */
/* etc. etc. */
}
result = atof(temp.c_str());
Run Code Online (Sandbox Code Playgroud)
但既然result是通用的,我不能像使用任何方法atof和atoi等.
我该怎么办?
我想创建一个程序,读取包含两个数字和一个运算符的字符串,并打印出结果.它不断显示算术运算符的错误.例如,我如何将两个字符串一起添加?
int main()
{
string number1;
string number2;
string operation;
string answer;
cout << "Enter numbers with respective operations";
cout << "number 1";
cin >> number1;
cout << "number2";
cin >> number2;
cout << "operation";
cin >> operation;
if (operation == "+")
{
answer = number1 + number2;
cout << "the sum is " << answer << endl;
}
else if (operation == "-")
{
answer = number1 - number2;
cout << "the difference is " << answer << endl; …Run Code Online (Sandbox Code Playgroud) 我有一个阵列 char input[11] = {'0','2','7', '-','1','1','2', ,'0','0','9','5'};
如何将输入[0,1,2]转换为int one = 27输入[3,4,5,6] int two = -112并输入[7,8,9,10]为int three = 95?
是的,JNK
背景:我是 C++ 领域的 rockie
输入文件: 100万行
FCC5G2YACXX:5:1101:1224:2059#NNNNNNNN 97 基因组 96003934 24 118M4D11M = 96004135 0 GCA....ACG P\..GW^EO AS:i:-28 XN:i:0 XM:i:2 XO: i:1 XG:i:4 NM:i:6 MD:Z:54G53T9^TACA11 YT:Z:UP
预期产出
96003934 98.31
解释输出
第 4 栏:96003934
第 18 栏:MD:Z:54G53T9^TACA11
匹配 = 54+53+9 = 116
不匹配 = count_letter(54G53T9) = 2
id = 116*100 / (116+2) = 98.30508474576272
awk 脚本
awk '{
split($18,v,/[\^:]/);
nmatch = split(v[3],vmatch, /[^0-9]/);
cmatch=0;
for(i=1; i<=nmatch; i++) cmatch+=vmatch[i];
printf("%s"OFS"%.2f\n", $4, cmatch*100/(cmatch+nmatch-1));
}' file.sam
Run Code Online (Sandbox Code Playgroud)
C++,我认为会更快
#include <iostream>
#include …Run Code Online (Sandbox Code Playgroud)