重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用strstr函数嘛(以下代码测试通过)
创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为盂县企业提供专业的成都网站制作、成都网站设计、外贸营销网站建设,盂县网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
功能:在一个字符串中查找特定的字符串,如果查找到会返回查找到字符串的位置,失败返回NULL
分析:搜索字符串"bizbox_userlang=",成功后取出'='后和‘=’后第1个';'之间的所有字符
#include stdio.h
int main(int argc, char* argv[])
{
char buf1[]="bizbox_username=admin; bizbox_userpass=c1501f6698e058e47d3f81f723c2b9f2; bizstore_note=; bizbox_userlang=zh; csd=33; cod=29.30; business_note=null";
char *buf2="bizbox_userlang=";
char *ptr;
char txt[100];
ptr=strstr(buf1,buf2); //成功返回的位置是"bizbox_userlang=zh; csd=33...."
if( ptr==NULL)
{
printf("没有找到该内容\n");
return -1;
C标准库中提供了一个字符串分割函数strtok();
实现代码如下:
#include stdio.h
#include string.h
#define MAXSIZE 1024
int main(int argc, char * argv[])
{
char dates[MAXSIZE] = "$GPGGA,045950.00,A,3958.46258,N,11620.55662,E,0.115,,070511,,,A*76 ";
char *delim = ",";
char *p;
printf("%s ",strtok(dates,delim));
while(p = strtok(NULL,delim))
{
printf("%s ",p);
}
printf("\n");
return 0;
}
运行结果截图如下:
1)简单来,直接用 strcat 函数,需要包含头文件 string.h
2)自己实现的话也不麻烦,但是要考虑一些细节:
假设两个字符串指针为 str1,str2 ,现在要讲 str1 和 str2 连接成一个新的字符串。
a.考虑指针 str1,str2 是否非空
b.如果将str2的内容直接连接到str1的末尾,要考虑str1是否有足够的剩余空间来放置连接上的str2的内容。
如果用一个新的内存空间来保存str1和str2的连接结果,需要动态分配内存空间。
1.
不需要专门分割,c语言里面本来就是用字符数组来保存的,如:char
a[20]="hello
world!";这个字符串,char[0]就是h,char[1]就是e。
2.
如果要分割子串,可以使用strtok函数。
char
*strtok(char
*s,
char
*delim);
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
首次调用时,s指向要分解的字符串,之后再次调用要把s设成null。
strtok在s中查找包含在delim中的字符并用null('')来替换,直到找遍整个字符串。
可以用strtok函数,按标志把字符串分开
#include
string.h
#include
stdio.h
char
string[]
=
"A
string\tof,tokens\nand
some
more
tokens";
char
seps[]
=
"
,\t\n";
//拆分的标志为
空格,逗号,\t,\n
char
*token;
void
main(
void
)
{
printf(
"%s\n\nTokens:\n",
string
);
/*
Establish
string
and
get
the
first
token:
*/
token
=
strtok(
string,
seps
);
while(
token
!=
NULL
)
{
/*
While
there
are
tokens
in
"string"
*/
printf(
"
%s\n",
token
);
/*
Get
next
token:
*/
token
=
strtok(
NULL,
seps
);
}
}