Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C++中从字符串中提取数字_C++_Stringtokenizer - Fatal编程技术网

在C++中从字符串中提取数字

在C++中从字符串中提取数字,c++,stringtokenizer,C++,Stringtokenizer,假设我有以下字符数组: char *word="R12_X8_10"; 位数不是固定的,但非数字字符的位置是固定的。如何在没有boost的情况下提取数字?我应该通过拆分单词得到{12,8,10} 这是一个简单的任务,就像我在java中做过很多次,C++中的程序是对我的大脑征税。p> 你可以试试这个 int a,b,c; char *word="R12_X8_10"; sscanf(word,"R%d_X%d_%d",&a,&b,&c); 我知道这是一个C++系

假设我有以下字符数组:

char *word="R12_X8_10";
位数不是固定的,但非数字字符的位置是固定的。如何在没有boost的情况下提取数字?我应该通过拆分单词得到{12,8,10}

<>这是一个简单的任务,就像我在java中做过很多次,C++中的程序是对我的大脑征税。p> 你可以试试这个

int a,b,c;
char *word="R12_X8_10";
    sscanf(word,"R%d_X%d_%d",&a,&b,&c);
<>我知道这是一个C++系统,但是我也知道SnDIF和SCANF如果包含了STDIO .H,则与C++编译器一起工作。 我希望这有帮助。

你可以试试这个

int a,b,c;
char *word="R12_X8_10";
    sscanf(word,"R%d_X%d_%d",&a,&b,&c);
<>我知道这是一个C++系统,但是我也知道SnDIF和SCANF如果包含了STDIO .H,则与C++编译器一起工作。
我希望这有帮助。

< P> C++流的方式是获得或忽略标记字符。例如,要忽略它们,您可以使用:

const char *word = "R12_X8_10";
int i, j, k;
std::stringstream ss(word);

ss.ignore(1) >> i;
ss.ignore(2) >> j;
ss.ignore(1) >> k;
或者更紧凑,如果不是更可读:

((ss.ignore(1) >> i).ignore(2) >> j).ignore(1) >> k;

不相关,但注意单词的字符串,因为字符串不应该被分配给非const指针。

< P> C++流方式是获取或忽略标记字符。例如,要忽略它们,您可以使用:

const char *word = "R12_X8_10";
int i, j, k;
std::stringstream ss(word);

ss.ignore(1) >> i;
ss.ignore(2) >> j;
ss.ignore(1) >> k;
或者更紧凑,如果不是更可读:

((ss.ignore(1) >> i).ignore(2) >> j).ignore(1) >> k;

不相关,但注意单词的字符串,因为字符串不应该被分配给非const指针。< /P> STD::ReXEX+STD::AtoiyEP,C++是Tang-Geod好。声明char * word=R12YX810;无论如何,C++是无效的,先修复它。STD::ReGEX+STD::AtoiyEP,C++是对大脑征税的。不管怎么说,C++是无效的,先修复一个。sScNF在C++中工作,但是char * word =…没有。标题应该是你是对的,我刚刚试过。关键是Hassan不会那样声明字符串。这只是一个例子example@Nitro,你的建议既好又容易。如果需要,我可以将*char转换为std::string。谢谢。SCANFF在C++中工作,但是char * word =…没有。标题应该是你是对的,我刚刚试过。关键是Hassan不会那样声明字符串。这只是一个例子example@Nitro,你的建议既好又容易。如果需要,我可以将*char转换为std::string。谢谢,这其实是一个C++解决方案!这其实是一个C++解决方案!