从包含特殊字符的char*中提取int
Extract int from char* containing special character in Ubuntu gcc
我有一个char* buf[]
,当打印时看起来像(-1.20112344x-2.13413423):2
。我需要在这个char* buf[]
中提取两个int
,它们在()
中,用特殊字符x
分隔。int
可能是正的,也可能是负的(我给出的例子是一个特定的情况)。
我在Ubuntu上使用GCC编译。请告诉我如何做到这一点,考虑到我是如何编译。
如果我正确理解了你的问题,下面的程序应该会有所帮助(在paxdiablo的注释之后编辑-使用double
而不是float
类型,并将结果返回到8位有效数字)。
include <stdio.h>
int main(void) {
char* s=" (-1.20112344x-2.13413423):2 ";
double a, b;
sscanf(s, " (%lfx%lf", &a, &b);
printf("a is %.8lf; b is %.8lfn", a, b);
}
运行时,返回
a is -1.20112344; b is -2.13413423
sscanf
函数按照给定的格式扫描字符串中的数字-在本例中,格式字符串" (%lfx%lf"
表示:"跳过空格开括号(
,然后读取双精度%lf
,将结果放入a: &a
地址所指向的位置(即将结果放入a
)。跳过x
,然后找到另一个double并将结果存储在b
中。
相关文章:
- 从 std::vector<无符号字符>切片中提取 int?
- z3 提取 Seq Int 作为 std::vector<int>
- 如何安全地将有符号字段从uint32_t提取到有符号数字(int或uint32_t)中
- 如何从C++中的字符串ID中提取int日,月和年
- 从 vector<pair<string, int 中提取不包含 0 的字符串>>
- 从字符串中提取单个字符并将其转换为 int
- 从字符串中提取int值和字符串
- 正则表达式:在字符串和冒号之后提取 int
- 如何在不使用堆栈或数组的情况下从INT中提取每个数字?(C )
- 从长长的长度中提取int
- c++使用字符串流从字符串内部提取int
- 从文本文件中提取特定值(char & int)并插入到多个变量中C++
- 字符串解析以在C++中为Arduino提取int
- 在C++中使用sscanf从字符串中提取int
- 正在C++中提取char数组的int
- 从包含特殊字符的char*中提取int
- c++文件提取检查是否为int
- 使用文件提取操作符读取int或string
- 为什么当我提取到"char"和"int"时,IOStream的EOF标志行为会有所不同?
- 从字符串中提取int并插入到c++映射