TCHAR和CHAR类型的互转

http://blog.csdn.net/ahjxly/article/details/8494217

http://blog.csdn.net/b_h_l/article/details/7581519

http://blog.chinaunix.net/uid-339069-id-3402668.html

没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。

void TcharToChar(const TCHAR * tchar, char * _char)
{
    int iLength;
    //获取字节长度
    iLength = WideCharToMultiByte(CP_ACP, 0, tchar, -1, NULL, 0, NULL, NULL);
    //将tchar值赋给_char
    WideCharToMultiByte(CP_ACP, 0, tchar, -1, _char, iLength, NULL, NULL);
}

void CharToTchar(const char * _char, TCHAR * tchar)
{
    int iLength;
    iLength = MultiByteToWideChar(CP_ACP, 0, _char, strlen(_char) + 1, NULL, 0);
    MultiByteToWideChar(CP_ACP, 0, _char, strlen(_char) + 1, tchar, iLength);
}

表明 TCHAR 与 WCHAR 属同一类型
char szA[100];                    // ANSI string buffer
WCHAR szW[100];            // Unicode string buffer
// Normal sprintf:all strings are ANSI
sprintf(szA, "%s","ANSI Str");
// Converts Unicode string to ANSI
sprintf(szA,"%S",L"Unicode Str");
// Normal swprintf:all strings are Unicode
swprintf(szW,L"%s",L"Unicode Str");
// Converts ANSI string to Unicode
swprintf(szW,L"%S", "ANSI Str");
注意:大写S 和小写s 的使用

时间: 2024-08-13 09:09:04

TCHAR和CHAR类型的互转的相关文章

binary、char类型数据互转函数

最近在做项目时,需要把binary类型数据转换成字符类型的数据,发现原来可以这样写,记录下来供需要的童靴参考. IF OBJECT_ID('fn_BinaryToChar') IS NOT NULL DROP FUNCTION fn_BinaryToCharGO /* =============================================-- 作者: Haytor-- 日期: 2015-09-09-- 描述: 把16进制数据转换成字符串数据-- 示例: DECLARE @va

Windows/MFC,C++中的TCHAR体系/char体系/WCHAR体系及其相互转换

</pre><pre> Windows/MFC,C++编程中经常遇到UNICODE.ANSI字符串,并需要对这些字符串进行转换,本文对这些体系与其转换进行了总结. 第一篇:基础篇 3大体系常用函数及解析详见博文:http://blog.csdn.net/u010003835/article/details/47344775  此外,接下来我书写的函数以Windows对char*,TCHAR*,const  TCHAR*的命名规则来书写 不熟悉的童鞋可以参考博文: http://bl

对char类型的理解以及对补码的理解分析

今天遇到这样一个小程序,觉得当中有些问题很容易让人忽略的! 这个程序代码如下: 程序的结果为: 我想很多像我一样的小白可能才开始是想不明白为什么最后的结果是255吧!首先,我们得知道 strlen()是计算字符串长度的函数,但为什么最后得到的字符串长度是255呢?定义的数组a中不是有1000个元素,并且for循环也是执行999次吗? 对于char来说,我们得知道其隐含的结束标记是\0,当编译器识别一个char类型的变量时,读取到\0,则标志着结束:对于这个程序,我们还得注意char的取值围:-1

【转】Hibernate的getSQLQuery方法对char类型的解析问题

[转]Hibernate的getSQLQuery方法对char类型的解析问题 建立数据库: create table T_TEST1( id char (32), name varchar (255), other varchar (255), primary key(id) )insert into T_TEST1 values('2c9090792a18d6ab012a18d77e700001','sfasdf','asdf') insert into T_TEST1 values('2c9

C#基础、基础知识点、char类型的数值转换

char转为int 一个字符 '汉' 怎么可能转换为数字呢? 实际上是可以的,在之前的补充资料中已经说到,计算机对字符的存储,是使用某种编码规则对应的数字来存储的. 在C#语言中,使用Unicode编码来存储字符. 比如汉字 '汉',对应的Unicode编码是27721,在计算机内存中,将使用汗27721对应的二进制来存储. 因此,如果要把 '汉' 转换为int类型的数字,转换的结果就是27721. 那使用什么样的代码来完成该转换呢? char类型的任何数据都可以隐式的转换为int类型. 既然是

SQL里面的char类型

--LEN(参数):获取字符的个数--不区分中英文--DATALENGTH(参数):获取参数所占据的字节数select LEN('中华人民共和国')select LEN('abcd')--select datalength('中华人民共和国')select datalength('abcd')--查询表的数据--char类型:char空间一旦分配,就不会再回收,多余的空间不会回收.但是如果存储的数据的数量大于指定的空间,那么就会报错.当需要存储的值的长度波动变动不大的时候可以使用char.--身

将一个字符串看作一个char类型的数组

有时候我们会遇到将用户输入的一句话中的某一个字符拿出来用的问题. 我们可以将用户输入的字符串看作一个char类型的数组 比如有一个字符串string a = "hello"; 要将'e'输出怎么办? 我们将a看作一个char类型的数组,然后使用for循环来遍历这个数组,然后在控制台中输出即可 for(int i = 0;i<a.Length;i++) { Console.writeLine(a[1]); } 关键是要有将字符串看作char类型数组的思维. 小菜鸟今天的一点小心得,

string 转换char类型

将string转换成char类型 const char *c = string.c_str() char转换string char *c_name = "char" string str_name = c_name

【C语言】【面试题】【笔试题】对于char 类型用%u与%d输出结果解析

#include <stdio.h> int main() { char a = 128;//128=127+1=-1://因为char类型最大能保存的范围为-128~127 //1000 0000 //11111111 11111111 11111111 1000 0000 printf("%u\n", a); system("pause"); return 0; } #include <stdio.h> int main() { char