我有一个.txt文件,其划分如下:
(P1,3): (E10,E20,E1,E3)
(P2,2): (E10,E2,E5)
(P3,E20)
我只想将每行的数字保存在数组中。例:第一个是[1,3,10,20,1,3]。我该怎么办?
我有一个.txt文件,其划分如下:
(P1,3): (E10,E20,E1,E3)
(P2,2): (E10,E2,E5)
(P3,E20)
我只想将每行的数字保存在数组中。例:第一个是[1,3,10,20,1,3]。我该怎么办?
使用ifstream逐行读取文件。
在字符串读取为std :: string的情况下,使用regex search查找新读取的字符串中数字的出现。
要用于提取字符串中所有数字的正则表达式如下:
https://regex101.com/r/yWJp5p/3
用法示例:
https://rest.ensembl.org/vep/human/hgvs/chr2:g.10216G>T?CADD=1
,
有多种解决方案。解释其中一种解决方案。
char *str = "(P1,3): (E10,E20,E1,E3)",*p = str;
while (*p) {
if ( isdigit(*p)) {
long val = strtol(p,&p,10);
printf("%ld\n",val);
} else {
p++;
}
}
注意:如果文件中包含负数,则需要检查该数字。
只需在if条件中添加((*p=='-'||*p=='+') && isdigit(*(p+1)))
。