一、memset

#include<stdio.h>
#include<stdlib.h>
#include<memory.h> void *mymemset(void *p, int num, int len) {
char *px = (char *)p;
if (p == NULL)
return NULL;
while (len>)
{
*px = (char)num;
px++;
len--;
}
return p;//因为上述代码是对px进行操作,p的地址没有变化,所以最后返回p
} void main() {
char str[]= {"china is great"};
int num[] = { ,,,, };
float f[] = { 1.0,2.0,3.0,4.0,5.0 };
//memset(str, '\0', 40);
mymemset(str, '\0', );
printf("%s\n",str);
mymemset(num,,);
mymemset(f,,);
for (int i = ; i < ; i++)
printf("%d,%f\n",num[i],f[i]); system("pause");
}

二、Unicode及宽字符

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>//设置本地化 void main0() {
//字符串可以显示汉字,字符不可以,字符连在一起%c%c可以输出一个汉字
char str[] = "你好中国";
char ch = '我';//char只能是字母,数字,字符
printf("%s\n", str);
printf("%c%c\n",ch);//ch无法正常输出‘我’,ASCII表里面没有‘我’
printf("%c%c\n",str[],str[]);//输出一个汉字,一个汉字占两个字节
system("pause");
} void main() {
wchar_t ch = L'我';//L宽字符或者宽字符串
printf("%d\n",sizeof(ch));//2个字节
setlocale(LC_ALL,"chs");//简体中文
wprintf(L"%wc\n", ch);//汉字当做一个字符 wchar_t str[] = L"我是一个好人ABC";
wprintf(L"%s\n", str);
system("pause");
}

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h> void main() {
//MessageBox(0, "滴,不准用快播飙车!", "360安全卫士", 0);//使用多字节字符集时正常运行
//MessageBox(0,L"滴,不准用快播飙车!",L"360安全卫士", 0);//使用Unicode字符集时,需要加‘L’
MessageBoxA(, "滴,不准用快播飙车!", "MessageBoxA", );//无论是多字节还是Unicode,始终以多字节运行
MessageBoxW(, L"滴,不准用快播飙车!", L"MessageBoxW", );//无论是多字节还是Unicode,始终以Unicode运行
MessageBox(,TEXT("滴,不准用快播飙车!"),TEXT("TEXT"), );//自动适应多字节或者Unicode }

三、strset

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string> void mystrset(char *p, char ch) {
while (*p)
{
*p = ch;
p++;
}
} void main() {
char str[] = "yincheng8848";
printf("before:%s\n", str);
//_strset(str, '8');//_strset标准C语言
mystrset(str, '');//_strset标准C语言
//_strset(str, '\0');//清空字符串
printf("after:%s\n", str);
system("pause");
}

[c/c++] programming之路(25)、字符串(六)——memset,Unicode及宽字符,strset的更多相关文章

  1. SQL注入之Sqli-labs系列第三十六关(基于宽字符逃逸GET注入)和三十七关(基于宽字节逃逸的POST注入)

    0X1 查看源码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string ...

  2. 宽字符与Unicode (c语言 汉语字符串长度)

    在C语言中,我们使用char来定义字符,占用一个字节,最多只能表示128个字符,也就是ASCII码中的字符.计算机起源于美国,char 可以表示所有的英文字符,在以英语为母语的国家完全没有问题. 但是 ...

  3. GO语言的进阶之路-Golang字符串处理以及文件操作

    GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...

  4. Python之路【第六篇】:socket

    Python之路[第六篇]:socket   Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字&quo ...

  5. [精校版]The Swift Programming Language--语言指南--字符串和字符 (转)

    今天装了10.10.马上就可以实际编写swift了.还是很兴奋啊. 哈哈.字符串和字符是大家最容易打交道的.今天就转一下讲解swift中字符串和字符的文章.希望对大家有帮助. 原文地址:http:// ...

  6. 【python之路25】正则表达式

    一.正则表达式简介 就其本质而言,正则表达式(或RE)是一种小型的.高度专业化的(在python中),它内嵌在python中,并通过RE模块实现.正则表达式编译成一系列字节码,然后由用C编写的匹配引擎 ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  8. 在论坛中出现的比较难的sql问题:25(字符串拆分3)

    原文:在论坛中出现的比较难的sql问题:25(字符串拆分3) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下 ...

  9. python学习之路06——字符串

    字符串 1.概念 字符串就是由若干个字符组成的有限序列 字符:字母,数字,特殊符号,中文 表示形式:采用的单引号或者双引号 注意:字符串属于不可变实体 2.创建字符串 str1 = "hel ...

随机推荐

  1. mysql存储emoji问题

    前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了 emoji符号实际上是文本,并不是图片,它们仅仅显示为图片 在mysql5.5 ...

  2. Java之JVM监控工具分享

    Java之JVM监控工具分享 JVM的基本知识常用的也就是类加载机制,内存区域.分配.OOM,GC,JVM参数调优 几个链接自己看: 内存区域&类加载机制 分配策略&垃圾回收算法.收集 ...

  3. 用js实现二维数组的旋转

    我最近因为做了几个小游戏,用到了二维数组,其中有需求将这个二维数组正翻转 90°,-90°,180°. 本人是笨人,写下了存起来. 定义的基本二位数组渲染出来是这种效果. 现在想实现的结果是下面的效果 ...

  4. 从vue渲染想到的数组方法

    <div id="app"> <ul> <li v-for='item in goods'>{{item}}</li> </u ...

  5. 四、XML语言学习(2)

    XML约束之DTD 1.XML都是用户自定义标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错.XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束格式良好的X ...

  6. 微信小程序开发笔记03

    今天基本实现了微信小程序主要功能,页面还没有进行优化,有些功能还需完善. 页面之间的信息转化部分还未实现.

  7. ubuntu下安装thrift

    configure: error: "Error: libcrypto required."

  8. 记录常用的adb命令

    1.启动adb服务 adb start-server 2.关闭服务 adb kill-server 3.进入shell环境 adb shell 4.安装应用 adb install -r xxx.ap ...

  9. CentOS 6.8 安装TigerVNC 实现 Linux 远程桌面并安装火狐浏览器

    CentOS 6.8 安装TigerVNC 实现 Linux 远程桌面并安装火狐浏览器 vnc客户端地址:https://files.cnblogs.com/files/MYSQLZOUQI/vnc- ...

  10. SpringMVC整合mybatis基于纯注解配置

    Mybatis整合Spring配置 第一部分:配置Spring框架 配置SpringMVC的步骤 配置流程图 导入包(哪些包,基本包5个,1日志依赖包,2webmvc支持包)SpringMVC配置 & ...