c语言怎样将字符串置成空串,使用C语言计算和获得字符串中除空串外的内容及个数...

这个模型也很简单,参数里面一个是方法计算非空串个数,一个是返回非空串的内容。

主要还是接口的封装设计,要调用函数获得内容,就要把接口设计成一级指针的形式。除此之外,还要注意是参数是在主调函数里面分配内存。

int trimSpaceStr(char * p,char* buf,int * mycount){

int ret = 0;

int count = 0 ;

int i, j;

//设定起始指针位置

i = 0;

//设定末端指针位置

j = strlen(p) - 1;

while (isspace(p[i]) && p[i] != '\0') {

i++;

}

while (isspace(p[j])&& j > 0) {

j--;

}

count = j - i + 1;

//这里其实主要要注意的是这个函数

strncpy(buf, p+i, count);

buf[count] = '\0';

*mycount = count;

return ret;

}

int main(int argc, const char * argv[]) {

char buf[] = " abcd ";

char buf2[1024] = {0};

int count = 0;

trimSpaceStr(buf, buf2,&count);

printf("buf2:%s \n",buf2);

printf("count:%d \n",count);

system("pause");

return 0;

}

另外有一个特别要注意的点是

char buf[] = " abcd ";

char *p = " abcd ";

buf和p中指向的字符串并不是同一个区域,buf指向的是stack中的区域,而p是指向常量区的,我们可以修改buf中的内容,但是并不能改变p指向常量区中的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值