C语言 unicode 字符串处理Demo

概述

        做个笔录

1、示例1

#include <stdio.h>
#include <string.h>
#include "main.h"

struct strStruct
{
	uint16_t phone_num[16];
	uint16_t message[400];
};

void filterSpaces(char* src, char* dst)
{
	uint8_t i = 0;
	uint8_t flag = 0;
	char* p = NULL;	

	for (p = src; *p != '\0'; p++) {
		if (*p == ':') {
			flag = 1;	//android
		}
		if (*p == ' ') {
			flag = 2;	//ios
		}
	}

	/* andorid */
	if (flag == 1) {
		for (p = src; *p != ':'; p++) {
			/*if (*p == ':') {
				break;
			}*/
			dst[i++] = *p;
		}
	}

	/* ios */
	if (flag == 2) {
		/* p=str indicates that the pointer points to the first address of the string to mark */
		for (p = src; *p != '\0'; p++) {
			/* Not equal to '\0' means p++ as long as the string does not end. */
			if (*p != ' ') {
				dst[i++] = *p;
			}
		}
	}

}


int main(void)
{
	struct strStruct str, str1;
	memcpy(str.phone_num, "13578942356", sizeof("13578942356"));
//	memcpy(str.message, "135 7894 2356", sizeof("135 7894 2356"));
	memcpy(str.message, "来来来:13578942356", sizeof("13578942356"));

	printf("111 %s, %s\n", (char*)str.message, (char*)str1.message);

	filterSpaces((char*)str.message, (char*)str1.message);
	printf("222 %s, %s\n", (char*)str.message, (char*)str1.message);
	int res = strcmp((char*)str1.message, (char*)str.phone_num);
//	char* res = strstr((char*)str1.message, (char*)str.input_num);


	if (res == 0)
	//if (res != NULL)
	{
		printf("两个字符串相等!");
	}
	else 
	{
		printf("两个字符串不相等!");
	}

	printf("heihei");
}

2、示例2: 

#include <stdio.h>
#include <string.h>
#include "main.h"

struct strStruct
{
	uint16_t phone_num[16];
	uint16_t message[400];
};

uint8_t filterSpacesColon(uint16_t* src, uint16_t* dst)
{
	uint8_t index = 0;
	uint8_t flag = 0;
	uint16_t* p = src;		
	
	while(*p != '\0')
	{
		if (*p == ':') {
			flag = 1;	//android
			break;
		}
		if (*p == ' ') {
			flag = 2;	//ios
			break;
		}
		p++;
	}
	
	/* andorid */
	if (flag == 1) {
		for (p = src; *p != '\0'; p++, dst++) {
			if (*p == ':') {
				break;
			}
			*dst = *p;
			index++;
		}
	}

	/* ios */
	if (flag == 2) {
		/* p=str indicates that the pointer points to the first address of the string to mark */
		for (p = src; *p != '\0'; p++) {
			/* Not equal to '\0' means p++ as long as the string does not end. */
			if (*p != ' ') {
				dst[index++] = *p;
			}
		}
	}
	
	return index;
}	

int main(void)
{
    filterSpacesColon(str.message, message);
    printf("222 %s, %s\n",str.message, message);
	for (int i = 0; i < 32; i++)
	{
		printf("0x%x", message[i]);
	}
}

3、运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354815.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【Go-Zero】Windows11下etcd的安装与初步使用 大家好 我是寸铁&#x1f44a; 总结了一篇Windows11下etcd的安装与初步使用的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言&#xff1a; 在使用etcd 前&#xff0c;我们需要了解一下etcd 是什么&#xff0c;为什么使用etcd…

C++ STL中list迭代器的实现

list 的模拟实现中&#xff0c;重难点在于迭代器功能的实现&#xff0c;因此本文只围绕 iterator 及 const_iterator 的设计进行介绍&#xff0c;其余如增删查改则不再赘述——在C语言的基础上&#xff0c;这些都非常简单。 与 string / vector 不同&#xff0c;list 的节点原生…

基于springboo校园社团信息管理系统

摘要 随着高校规模的扩大和学生社团活动的日益丰富多彩&#xff0c;校园社团信息管理成为一个备受关注的问题。为了更有效地组织、管理和推动校园社团的发展&#xff0c;本文设计并实现了一套基于Spring Boot的校园社团信息管理系统。本系统以实现社团信息的集中管理和高效运营…

Android Automotive:在路上释放 Android 操作系统的力量

Android Automotive&#xff1a;在路上释放 Android 操作系统的力量 Android 在汽车行业的历程车载信息娱乐系统 (IVI) 的演变汽车中的 Android&#xff1a;演变和进步Android 汽车操作系统的崛起Polestar 2&#xff1a;开创 Android 汽车体验Android 开源项目 (AOSP) 及其他项…

不确定优化入门:用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化

文章目录 1 引言2 学习动机3 经典问题4 解决方案4.1 忽略不确定性4.2 随机规划4.3 鲁棒优化4.4 分布鲁棒优化 5 总结相关阅读 1 引言 按2024的原定计划&#xff0c;今年开始要学习不确定优化了。 粗略翻阅了一些相关的书籍和教程&#xff0c;大都包含许多数学公式&#xff0c…

网络安全科普:SSL证书保护我们的网上冲浪安全

当我们在线上愉快冲浪时&#xff0c;各类网站数不胜数&#xff0c;但是如何判定该站点是安全还是有风险呢&#xff1f; 当当当&#xff0c;SSL数字证书登场&#xff01;&#xff01; SSL证书也称为数字证书&#xff0c;是一种用于保护网站和用户之间通信安全的加密协议。由权…

Steam游戏免费玩 gamebox 一起来玩幻兽帕鲁吧

steam大作免费畅玩 幻兽帕鲁也有资源 UI设计精美 还有补票链接&#xff0c;点击一下&#xff0c;就能跳转至Steam商店 可以自定义安装位置 下载链接 gamebox&#xff1a;https://rssm666.lanzn.com/b039g6dqj

Windows XP x86 sp3 安装 Google Chrome 49.0.2623.112 (正式版本) (32 位)

1 下载地址&#xff1b; https://dl.google.com/release2/h8vnfiy7pvn3lxy9ehfsaxlrnnukgff8jnodrp0y21vrlem4x71lor5zzkliyh8fv3sryayu5uk5zi20ep7dwfnwr143dzxqijv/49.0.2623.112_chrome_installer.exe 2 直接 双击 49.0.2623.112_chrome_installer.exe 安装&#xff1b; 3 …

算法学习之每日一题Day4

题目 费解的开关 一、有关题目&#xff08;涉及算法&#xff1a;递推&#xff0c;模拟&#xff09; 1.题目来源&#xff1a;《算法竞赛进阶指南》 Acwing 95 2.题目链接 https://www.acwing.com/problem/content/description/97/ 3.题目描述 你玩过“拉灯”游戏吗&…

范仲淹大直男逆袭,先天下之忧而忧

人在最艰苦时&#xff0c;最能体现英雄本色。 天底下最苦的是读书。读书要眼到、手到、心到&#xff0c;专心致志&#xff0c;灵活运用。 范仲淹读书很用功&#xff0c;每天煮一锅粥。等到第二天&#xff0c;粥凝固了&#xff0c;范仲淹把隔夜粥划为四块&#xff0c;早上吃两块…

Blender教程(基础)-初始用户界面-01

开始第一天的Blender学习、也是业余学习。希望记录下这一份学习的过程、并且分享给大家。今天带大家认识Blender这一款软件&#xff0c;先说说我为什么选择了Blender&#xff0c;我在软件市场找了好久&#xff0c;市场上其他雷同软件都是要么收费要么不好用&#xff0c;最终决定…

MATLAB知识点:向量元素的引用

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章 3.2.2节 对向量元素的引用&#xff08;即提取向量…

如何将前后端分离(vue2+SpringBoot)项目部署到腾讯云服务器

如何将前后端分离&#xff08;vue2SpringBoot&#xff09;项目部署到腾讯云服务器 目录 如何将前后端分离&#xff08;vue2SpringBoot&#xff09;项目部署到腾讯云服务器 1、在选中目录地下新建2个文件夹 2、将打包好的前端项目和后端jar包上传到相应的目录下 3、将路径切…

MyBatis详解(5)-- MyBatis注解

MyBatis详解&#xff08;5&#xff09; 注解映射器xml配置文件的缺陷&#xff1a;常用注解1.基本注解&#xff1a;实现简单的增删改查操作。Insert 新增Options(useGeneratedKeys true, keyProperty "主键属性") 主键回填SelectKey ( statement "自增规则&qu…

Mysql大数据量分页优化

前言 之前有看过到mysql大数据量分页情况下性能会很差&#xff0c;但是没有探究过它的原因&#xff0c;今天讲一讲mysql大数据量下偏移量很大&#xff0c;性能很差的问题&#xff0c;并附上解决方式。 原因 将原因前我们先做一个试验&#xff0c;我做试验使用的是mysql5.7.2…

Matlab|【完全复现】基于价值认同的需求侧电能共享分布式交易策略

目录 1 主要内容 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序完全复现《基于价值认同的需求侧电能共享分布式交易策略》&#xff0c;针对电能共享市场的交易机制进行研究&#xff0c;提出了基于价值认同的需求侧电能共享分布式交易策略&#xff0c;旨在降低电力市…

北京摇号政策梳理汇总

文章目录 政策梳理 家庭申请资格 家庭积分规则 参考资料 目前&#xff0c;北京车牌摇号实施的政策&#xff0c;主要是2021年1月1日的《<北京市小客车数量调控暂行规定>实施细则》。本文梳理了与博主本人直接相关的一些内容&#xff0c;可能对大部分网友也有帮助。 政…

基于springboot宠物领养系统

摘要 随着社会的不断发展和人们生活水平的提高&#xff0c;宠物在家庭中的地位逐渐上升&#xff0c;宠物领养成为一种流行的社会现象。为了更好地管理和促进宠物领养的过程&#xff0c;本文基于Spring Boot框架设计和实现了一套宠物领养系统。该系统以用户友好的界面为特点&…

有趣的移位操作符和位操作符(由浅入深轻松搞定!)

目录 1. 原码&#xff0c;反码&#xff0c;补码 2.移位操作符 2.1 左移操作符 2.2 右移操作符 3.位操作符 (&、|、^、~) 4.使用移位操作符和位操作符写一些有趣的代码~ 1.不能创建临时变量&#xff08;第三个变量&#xff09;&#xff0c;实现两个数的交换 2.编写代…

[echarts] 图表工具栏 toolbox

option{// 工具栏配置toolbox:{id:1, // 组件IDshow:true, // 是否显示工具栏orient:horizontal, // 工具栏 icon 的布局朝向itemSize:15, // 工具栏 icon 的大小itemGap:10, // 工具栏…