相关疑难解决方法(0)

从"0x4000"(例如)字符串获取十六进制值并将其存储在变量中.

这是我的问题:

我编写了一个函数来检测字符串是否基于"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"?

谢谢.

c type-conversion

0
推荐指数
1
解决办法
1731
查看次数

将字符串转换为数字类型的通用方法?

我有这门课:

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是通用的,我不能像使用任何方法atofatoi等.

我该怎么办?

c++ string generics types casting

0
推荐指数
1
解决办法
1935
查看次数

如何在C++中对字符串应用算术运算?

我想创建一个程序,读取包含两个数字和一个运算符的字符串,并打印出结果.它不断显示算术运算符的错误.例如,我如何将两个字符串一起添加?

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)

c++

0
推荐指数
1
解决办法
277
查看次数

Char-array到int

我有一个阵列 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 c++ int bytearray

-1
推荐指数
1
解决办法
7348
查看次数

为什么 awk 脚本比 C++ 程序更快?

背景:我是 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)

c++

-1
推荐指数
1
解决办法
1930
查看次数

标签 统计

c++ ×4

c ×2

bytearray ×1

casting ×1

generics ×1

int ×1

string ×1

type-conversion ×1

types ×1