读书人

sscanf()函数提取字符串有关问题

发布时间: 2012-02-21 16:26:23 作者: rapoo

sscanf()函数提取字符串问题~
#include<stdio.h>

int main()
{
float fNo;
char strNo[100];

char *str = "No=1.1| // No是号码";

sscanf(str, "%[^=]s %[^|]f", &strNo, &fNo );
printf("%f", fNo);
}

我是想把1.1从字符串中提取出来,但调用sscanf()后fNo没被赋值,上网看了些资料,%[^=]s会在strNo后加"\0"结尾,不知这有没有影响?
还想请教以下还有没有其它更好办法提取1.1出来?

[解决办法]
#include <stdio.h>
#include <stdlib.h>

int main()
{
float fNo;

char *str = "No=1.1 | // No是号码";

sscanf(str, "%*[^=]=%f[^|]" ,&fNo );
printf("%f", fNo);
system("pause");
}
[解决办法]
字符串本来就是以NUL结尾的。没有影响。
对于提取字符串你也可以用strstr进行匹配查找。
用[1.1]直接提取

读书人网 >C语言

热点推荐