c语言文本处理

从字符串中提取开头的数字:

stdlib标准库中:

long int strtol(const char *nptr,char **endptr,int base);

函数会扫描nptr字符串,跳过前面的空格字符,若遇数字则开始转换,再遇到字符(包括空格)后便返回。
endptr是一个传出参数,函数返回时指向返回时扫描的指针位置。
base代表采用的进制方式,范围从2至36,当base值为0时则是采用10进制做转换。
如:

#include <stdio.h>
#include <stdlib.h>
int main()
{
   char str[30] = " 200030300   This is 222 test";
   char *ptr;
   long ret;
   ret = strtol(str, &ptr,10);
   printf("num= %ld\n", ret);
   printf("string=|%s|", ptr);
   return(0);
}

则返回:

num=200030300
string=|   This is 222 test|

将字符串转为浮点数:

相似的,在stdlib标准库中:

double strtod(const char *nptr,char **endptr);

用来查找字符串开头的浮点数。
如:

#include <stdio.h>
#include <stdlib.h>
int main()
{
   char str[30] = "  20003.300   This is 222 test";
   char *ptr;
   double ret;
   ret = strtod(str, &ptr);
   printf("num= %lf\n", ret);
   printf("string=|%s|", ptr);
   return(0);
}

结果:

num= 20003.300000
string=|   This is 222 test|

字符串查找:

string标准库中:

char *strstr(char *str1, char *str2);

用于判断字符串str2是否是str1的子串。
如果是,则该函数返回str2在str1中首次出现的地址;
否则,返回NULL。

#include <string.h>
#include <stdio.h>
int main()
{
   char str1[30] = " This is 222 test";
   char str2[4]="is";
   long ret;
   ret = strstr(str1,str2);
   printf("return= %ld\n", ret);
   printf("string=|%s|", ret);
   return(0);
}

运行结果:

return=6356712
string=|is is 222 test|

类似的:

char * strchr(char * str,char ch); 

功能就是找出在字符串str中第一次出项字符ch的位置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值