c编程问题请教???

来源:百度知道 编辑:UC知道 时间:2024/05/23 01:21:52
我在c语言中使用正则表达式成功匹配一个字符串,如:“test”及其后最近的一个分号,想取出他们之间的字符串,如何操作啊?
或者不用正则表达式。。。
大家好,感谢大家相助,本想参与都给分的,可是百度没这功能,只能给第一个提出c解决方法的“幽居古藤”;同事感谢“ryw12403”,让我对正则表达式有进一步学习,十分感谢!

#include "stdio.h"
#include "string.h"
void main()
{
int i=0;
char c[]="asldflkja test:this is a sample;.";
char *p,find[]="test";
char res[100];

p=strstr(c,find)+4;
while(*p!=';'&&*p!='\0')
{
res[i]=*p;
p++;
i++;
}
res[i]='\0';
printf("%s",res);
}

有什么问题可以Q me 172610236 呵呵, 我明白一点C语言,但是我不明白那个正则表达式,可以教教我不?

C不支持正则表达式,C++也不支持
给你段C++程序,能达到你的要求,不过,没啥意义貌似~~
void main()
{
int temp1,temp2;
string Str = "abc d123e;f45test09812 4ad2test3llwr1;353test91d;fsai 14o9f zsdf";
string SubStr;

temp1=Str.find("test",0);
temp2=Str.find(";",temp1+4);
SubStr=Str.substr(temp1+4,temp2-temp1-4);
}

结果就是SubStr得到了"09812 4ad2test3llwr1"这段字符串。

谁说不能啊。

sscanf()就可以的,
名称: