C语言 宽字符串
/* 宽字符串的打印 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
#include <locale.h> /* 宽字符转换 */ void show(void)
{
const wchar_t * pw = L"今天天气还不错啊!"; /*
设计说明:
如果打印中文字符,setlocale()是必须的
*/
setlocale(LC_ALL, "zh_CN.UTF-8"); /*
知识补充:
printf和wprintf不能混用,即一个程序中使用了printf, 就不使用wprintf,反之也是,既然printf输出char 和 wchar_t字符都可以,所以统一使用printf是最佳选择。
*/ //printf打印宽字符串
printf("--printf--[%ls]------\n", pw);
printf("--printf--[%S]------\n", pw); ////wprintf打印宽字符串
//wprintf(L"--wprintf--[%ls]------\n", pw);
//wprintf(L"--wprintf--[%S]------\n", pw);
} int main()
{
show();
return ;
}
| 宽字符函数 | 普通C函数 | 描述 |
| iswalnum() | isalnum() | 测试字符是否为数字或字母 |
| iswalpha() | isalpha() | 测试字符是否是字母 |
| iswcntrl() | iscntrl() | 测试字符是否是控制符 |
| iswdigit() | isdigit() | 测试字符是否为数字 |
| iswgraph() | isgraph() | 测试字符是否是可见字符 |
| iswlower() | islower() | 测试字符是否是小写字符 |
| iswprint() | isprint() | 测试字符是否是可打印字符 |
| iswpunct() | ispunct() | 测试字符是否是标点符号 |
| iswspace() | isspace() | 测试字符是否是空白符号 |
| iswupper() | isupper() | 测试字符是否是大写字符 |
| iswxdigit() | isxdigit() | 测试字符是否是十六进制的数字 |
| wcslen() | strlen() | 获取字符数组长度 |
| towlower() | tolower() | 把字符转换为小写 |
| towupper() | toupper() | 把字符转换为大写 |
| wcscoll() | strcoll() | 比较字符串 |
| wcsftime() | strftime() | 根据指定的字符串格式和locale设置格式化日期和时间 |
| fwprintf() | fprintf() | 使用vararg参量的格式化输出 |
| fwscanf() | fscanf() | 格式化读入 |
| swprintf() | sprintf() | 根据vararg参量表格式化成字符串 |
| vfwprintf() | vfprintf() | 使用stdarg参量表格式化输出到文件 |
| vswprintf() | vsprintf() | 格式化stdarg参量表并写到字符串 |
| wcstod() | strtod() | 把宽字符的初始部分转换为双精度浮点数 |
| wcstol() | strtol() | 把宽字符的初始部分转换为长整数 |
| wcstoul() | strtoul() | 把宽字符的初始部分转换为无符号长整数 |
| _itow_s() | itoa() | 整型转宽字符串 |
| _ltow_s() | ltoa() | 长整型转宽字符串 |
| _ultow_s() | ultoa() | 无符号长整数转字符串 |
| fgetwc() | fgetc() | 从流中读入一个字符并转换为宽字符 |
| fgetws() | fgets() | 从流中读入一个字符串并转换为宽字符串 |
| fputwc() | fputc() | 把宽字符转换为多字节字符并且输出到标准输出 |
| fputws() | fputs() | 把宽字符串转换为多字节字符并且输出到标准输出串 |
| getwc() | getc() | 从标准输入中读取字符, 并且转换为宽字符 |
| getwchar() | getchar() | 从标准输入中读取字符, 并且转换为宽字符 |
| putwc() | putc() | 把宽字符转换成多字节字符并且写到标准输出 |
| putwchar() | putchar() | 把宽字符转换成多字节字符并且写到标准输出 |
| ungetwc() | ungetc() | 把一个宽字符放回到输入流中 |
| wcscat() | strcat() | 把一个字符串接到另一个字符串的尾部 |
| wcsncat() | strncat() | 类似于wcscat(), 而且指定粘接字符串的粘接长度. |
| wcschr() | strchr() | 查找子字符的第一个位置 |
| wcsrchr() | strrchr() | 从尾部开始查找子字符出现的第一个位置 |
| wcspbrk() | strpbrk() | 从一字符字符串中查找另一字符串中任何一个字符第一次出现的位置 |
| wcscspn() | strcspn() | 返回不包含第二个字符串的的初始数目 |
| wcsspn() | strspn() | 返回包含第二个字符串的初始数目 |
| wcscpy() | strcpy() | 拷贝字符串 |
| wcsncpy( | strncpy() | 类似于wcscpy(), 同时指定拷贝的数目 |
| wcscmp() | strcmp() | 比较两个宽字符串 |
| wcsncmp() | strncmp() | 类似于wcscmp(), 还要指定比较字符字符串的数目 |
| wcslen() | strlen() | 获得宽字符串的数目 |
| wcstok() | strtok() | 根据标示符把宽字符串分解成一系列字符串 |
| wmemcpy() | memory() | 内存拷贝函数 |
| wmemset() | memset() | 内存赋值函数 |
C语言 宽字符串的更多相关文章
- 宽字符与Unicode (c语言 汉语字符串长度)
在C语言中,我们使用char来定义字符,占用一个字节,最多只能表示128个字符,也就是ASCII码中的字符.计算机起源于美国,char 可以表示所有的英文字符,在以英语为母语的国家完全没有问题. 但是 ...
- C语言:宽字符集操作函数(unicode编码)
C语言:宽字符集操作函数(unicode编码) 字符分类: 宽字符函数 普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测 ...
- C语言:宽字符集操作函数
C语言:宽字符集操作函数 (unicode编码) 字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测 ...
- R语言拆分字符串
R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...
- C语言之字符串处理函数
C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...
- Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
- Swift3.0语言教程字符串与文件的数据转换
Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...
- Swift3.0语言教程字符串转换为数字值
Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...
- Swift3.0语言教程字符串大小写转化
Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...
随机推荐
- typeScript学习随笔(一)
TypeScript学习随笔(一) 这么久了还不没好好学习哈这么火的ts,边学边练边记吧! 啥子是TypeScript TypeScript 是 JavaScript 的一个超集,支持 es6 标准 ...
- Jmeter连接mysql,如何用delete、update、insert真正删除、更改、插入数据库里的数据;
1.如下图,当插入数据的时候如图对应填写,查询数据的时候上面插入的那条数据就会显示,但是如果不执行下图的提交数据:到数据库里查的时候,插入的这条数据实际上并没有插入成功: . 结果:如果没有提交数据, ...
- LGOJP2051 [AHOI2009]中国象棋
比较明显的计数dp.不知道为什么被打了状压的tag... 不难发现无论炮放在哪里其实是等价的,需要知道的只有这一列放了一个炮还是两个炮还是还没放,那么可以设\(f[i,j,k]\)表示第\(i\)行, ...
- ThreadLocal(在一个线程中共享数据)
ThreadLocal 在"事务传递Connection"参数案例中,我们必须传递Connection对象,才可以完成整个事务操作.如果不传递参数,是否可以完成?在JDK中给我们提 ...
- Django之路——11 Django用户认证组件 auth
用户认证 auth模块 1 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1.1 .authenti ...
- Navicat 的使用 —— 快捷键
名称 功能 备注 Ctrl+Q 打开查询窗口 Ctrl+/ 注释sql语句 Ctrl+R 运行查询窗口的sql语句 Ctrl+Shift+R 只运行选中的sql语句 F6 打开一 ...
- linux下安装Sublime Text3并将它的快捷方式放进启动器中和卸载Sublime
Sublime Text是一个代码编辑器,我主要是用它来编辑python.下面就来简单说明下它在linux的安装过程吧! 1.添加sublime text3的仓库 首先按下快捷键ctrl+alt+t打 ...
- Spring Security 3多用户登录实现之二 多登录界面展示
作者 接前讲,首先针对一个多种用户类型的登录需求,需要先实现多种用户类型的登录界面的展示,Spring Security提供了这样一个接口来帮助我们实现多种用户类型的登录界面的展示,这个接口就是Aut ...
- C++定义和初始化数组以及memset的使用(转)
一.一维数组 静态 int array[100]; 定义了数组array,并未对数组进行初始化 静态 int array[100] = {1,2}: 定义并初始化了数组array 动态 int* ar ...
- CF 768B
CF 768B题意:In each operation Sam must remove any element x, such that x>1, from the list and inser ...