parse required info from string by strsep()

本文展示了一个使用strsep函数从字符串中分离元素的例子,并通过trim函数去除前后空白字符。主要介绍了如何将包含逗号分隔的IP地址字符串解析为两个独立的DNS服务器地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* strsep.c by vinco at 2011-08-19
* Ubuntu CC/gcc-4.4.1
*/
#include<string.h>
#include<stdio.h>

#define PARAM_LENGTH 100

char* strtrim(char* s);

int main()
{
	char varValue[100] = " 202.103.44.150 , 202.103.24.68  ";
	char* pVar2 = varValue ,*pVar1 = NULL;
	char dnsPrimary[PARAM_LENGTH+1],dnsSecondary[PARAM_LENGTH+1];

	pVar1 = strsep(&pVar2,",") ;

	if( pVar1 )
	{
		strncpy(dnsPrimary, strtrim(pVar1), PARAM_LENGTH);
		dnsPrimary[PARAM_LENGTH] = '\0';
	}
	
	if( pVar2 ) 
	{
		strncpy(dnsSecondary, strtrim(pVar2), PARAM_LENGTH);
		dnsSecondary[PARAM_LENGTH] = '\0';
	}

	printf("dnsPrimary = %s \n", dnsPrimary );
	printf("dnsSecondary = %s \n", dnsSecondary );
}

/*
* to ignore the space char ,such as ' ','\n','\t'
*/
char* strtrim(char* s)
{
	
	int len=0,i=0,j=0,k=0;
	len = strlen(s);
	if( len == 0 ) return NULL;

	j = len -1;
	while(s[j] == ' ' || s[i] == '\t' )
	{
		s[j--] = '\0';
		if(j < 0 ) break;
	}

	while( s[i] == ' ' || s[i] == '\t' )  i++;
	if( i == 0 ) return s;
        while( s[k] != '\0') s[k++] = s[i++];

	return s;

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值