基于C语言的字符串提取

C语言字符串提取实战:车牌号粤C6YJ19的准确获取
本文通过实例解析如何使用C语言从复杂的字符串中提取特定的车牌号,如粤C6YJ19,同时介绍char数组和内存分配在字符串操作中的应用。

基于C语言的字符串提取

提示:
一个中文汉字占三个字节空间,也就是char[3]=“粤”;才能装下,但是一般境况下用char a[]=“粤”,或者char* a=“粤”;这样就能装更多的字符串内容,使用更加方便。

#include <stdio.h>
void main()
{
      char buf[128]={"<item desc=""车牌号""><![CDATA[粤C6YJ19]]></item>"};
      char a[3]={"粤"};
      printf("this is test result : %s\n",a);
}

运行结果如下:
在这里插入图片描述
会发现我们只输出了a,但是它连同buf也一起输出了,这好像是因为在内部储存空间中buf刚好储存在a的后面,具体的我也不太清楚,反正我就是菜,哈哈哈~ ~ ~ ~ ~

功能:提取出车牌号粤C6YJ19
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *char_extract(char*subject,int start,int end)
{
        char *result=malloc(sizeof(char)*(end-start));
        int i;
        int a=0;
        for(i=start;i<=end;i++)
        {
                result[a]=subject[i];
                a++;
        }
        result[i]='\0';
        return result;
}
void main()
{
        char* content_start=NULL;
        char* result;
        char buf[]="<item desc=""车牌号|""><![CDATA[粤C6YJ19]]></item>";
        char a[]="号";
        content_start=strstr(buf,a);
        result=char_extract(content_start,14,22); //14和22可以理解为字节偏移量,汉字偏移3个字节,符号和英文字符偏移一个字节
        printf("this is test result : %s\n",result);
}

运行结果如下:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值