vc环境下的vc字符串转ip环境是否是uncoid的?!

在VC++环境下,用C语言编程实现输入汉字而屏蔽其他数字,字符的输入,例如:提示请输入姓名:如果输入汉字_百度知道
在VC++环境下,用C语言编程实现输入汉字而屏蔽其他数字,字符的输入,例如:提示请输入姓名:如果输入汉字
则提示输入正确,而输入其他任何字符则提示输出错误请重新输入
提问者采纳
}不懂可继续发问;n&2;
printf(&quot,而对于键盘上的字符都为非负数;
while(i&lt。#include&
system(&i++)
printf(&2){
while(T==1){
i=0,T=1;#include&i&int main(){
int n=5,你可以加大字符串长度,下面写了个简单的程序;
i++,所以可以根i据这个判断;n&
if(i==2)T==0,代码在下面;,可以整个字符串的扫描;
gets(a),是否为汉字;=0){
printf(&)主要思想是;
char a[2],可以判断一个汉字还是字符,每个字节所对应的值实际上是负数;).h&stdio,就知道有非法字符时怎么办;%c&quot!非法字符请重新输入;&#92,i=0;
while(n--){
T=1,a[i]):\;pause&quot,汉字是两个字节组成
提问者评价
非常感谢!可否留个联系方式,以后向你 请教
其他类似问题
为您推荐:
c语言编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁MFC中是否有函数从字符串资源ID获取资源描述符
[问题点数:30分,结帖人sumnet]
MFC中是否有函数从字符串资源ID获取资源描述符
[问题点数:30分,结帖人sumnet]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
2012年4月 VC/MFC大版内专家分月排行榜第一
2012年5月 VC/MFC大版内专家分月排行榜第二2012年3月 VC/MFC大版内专家分月排行榜第二2011年7月 VC/MFC大版内专家分月排行榜第二2011年1月 VC/MFC大版内专家分月排行榜第二2010年12月 VC/MFC大版内专家分月排行榜第二2010年9月 VC/MFC大版内专家分月排行榜第二2010年6月 VC/MFC大版内专家分月排行榜第二2010年5月 VC/MFC大版内专家分月排行榜第二2010年4月 VC/MFC大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。在以前VC++6.0中默认的字符集是多字节字符集(MBCS:Multi-Byte Character Set),而VS2005及以后默认的字符集是Unicode,这样导致以前在VC6.0中非常简单实用的各类字符操作和函数在VS2010环境下运行时会报各种各样的错误。
字符集可以通过工程属性修改:&工程-属性-字符集&。
CString在Unicode和多字节字符集下的区别:CString 是基于 TCHAR 数据类型的。如果为程序的生成定义了符号 _UNICODE,则会将 TCHAR 定义为 wchar_t 类型(一个 16 位的字符编码类型);否则,会将它定义为 char(普通的 8 位字符编码)。于是,在 Unicode 下,CString 由 16 位字符组成。如果没有 Unicode,它们则由 char 类型的字符组成(来自MSDN)。
以下是CString在Visual C++ .NET 2010环境中Unicode字符集下CString和char *之间相互转换的几种方法,其实也就是Unicode字符集与MBCS字符集转换。
1.Unicode下CString转换为char *
方法一: 使用API:WideCharToMultiByte进行转换
CString str = _T("你好,世界!Hello,World");
//注意:以下n和len的值大小不同,n是按字符计算的,len是按字节计算的
int n = str.GetLength();
//获取宽字节字符的大小,大小是按字节计算的
int len = WideCharToMultiByte(CP_ACP,0,str,str.GetLength(),NULL,0,NULL,NULL);
//为多字节字符数组申请空间,数组大小为按字节计算的宽字节字节大小
char * pFileName = new char[len+1];
//以字节为单位
//宽字节编码转换成多字节编码
WideCharToMultiByte(CP_ACP,0,str,str.GetLength(),pFileName,len,NULL,NULL);
pFileName[len+1] = &\0&;
//多字节字符以&\0&结束
方法二:使用函数:T2A、W2A
CString str = _T("你好,世界!Hello,World");
//声明标识符
USES_CONVERSION;
//调用函数,T2A和W2A均支持ATL和MFC中的字符转换
char * pFileName = T2A(str);
//char * pFileName = W2A(str); //也可实现转换
2、Unicode下char *转换为CString
方法一:使用API:MultiByteToWideChar进行转换
char * pFileName = "你好,世界!Hello,World";
//计算char *数组大小,以字节为单位,一个汉字占两个字节
int charLen = strlen(pFileName);
//计算多字节字符的大小,按字符计算。
int len = MultiByteToWideChar(CP_ACP,0,pFileName,charLen,NULL,0);
//为宽字节字符数组申请空间,数组大小为按字节计算的多字节字符大小
TCHAR *buf = new TCHAR[len + 1];
//多字节编码转换成宽字节编码
MultiByteToWideChar(CP_ACP,0,pFileName,charLen,buf,len);
buf[len] = &\0&; //添加字符串结尾,注意不是len+1
//将TCHAR数组转换为CString
CString pWideC
pWideChar.Append(buf);
//删除缓冲区
方法二:使用函数:A2T、A2W
char * pFileName = "你好,世界!Hello,World";
USES_CONVERSION;
CString s = A2T(pFileName);
//CString s = A2W(pFileName);
下面是在网上看到的转换代码,注意函数MultiByteToWideChar()和WideCharToMultiByte()第四个参数传入-1时表示第三个参数传入的字符串是null结尾的(null-terminated),这时候返回的字节数(字符数)就包含了null,详情看MSDN。
#include "stdafx.h"
#include &windows.h&
#include &iostream&
#include &vector&
#include &atlstr.h&
using namespace
std::wstring UT2WC(const char* buf)
int len = MultiByteToWideChar(CP_UTF8, 0, buf, -1, NULL, 0);
std::vector&wchar_t& unicode(len);
MultiByteToWideChar(CP_UTF8, 0, buf, -1, &unicode[0], len);
return std::wstring(&unicode[0]);
std::string WC2UT(const wchar_t* buf)
int len = WideCharToMultiByte(CP_UTF8, 0, buf, -1, NULL, 0, NULL, NULL);
std::vector&char& utf8(len);
WideCharToMultiByte(CP_UTF8, 0, buf, -1, &utf8[0], len, NULL, NULL);
return std::string(&utf8[0]);
std::wstring MB2WC(const char* buf)
int len = MultiByteToWideChar(CP_ACP, 0, buf, -1, NULL, 0);
std::vector&wchar_t& unicode(len);
MultiByteToWideChar(CP_ACP, 0, buf, -1, &unicode[0], len);
return std::wstring(&unicode[0]);
std::string WC2MB(const wchar_t* buf)
int len = WideCharToMultiByte(CP_ACP, 0, buf, -1, NULL, 0, NULL, NULL);
std::vector&char& utf8(len);
WideCharToMultiByte(CP_ACP, 0, buf, -1, &utf8[0], len, NULL, NULL);
return std::string(&utf8[0]);
int main()
setlocale(LC_ALL, "");
CString str = "UNICODE转换成UTF-8";
//cout && WC2UT(str).c_str() && //Unicode下
BSTR bstr = str.AllocSysString();
cout && WC2UT(bstr).c_str() && //多字符集下/Unicode下
std::string s = WC2UT(bstr);
SysFreeString(bstr);
std::wstring ws = UT2WC(s.c_str());
wcout&& ws.c_str() &&
const wchar_t* s1 = L"UNICODE转换成UTF-8";
cout && WC2UT(s1).c_str() &&
const char* s2 = "ANSI转换成UNICODE";
wcout && MB2WC(s2).c_str() &&
const wchar_t* s3 = L"UNICODE转换成ANSI";
cout && WC2MB(s3).c_str() &&
WideCharToMultiByte:
MultiByteToWideChar:
阅读(...) 评论()查看: 963|回复: 0
 基于模板匹配算法的字符识别系统VC++
一.&毕业设计题目:基于模板匹配算法的字符识别系统研究与实现二.&课题的背景:研究表明,对视觉和听觉信息的处理过程,不仅仅是一个感知过程,也是一个认知过程。因此,研究模式识别,是理解人类智能的本质的重要途径。字符识别是一个传统和典型的模式识别问题,脱机手写数字识别是一个典型的大类别的模式识别问题。手写体数字具有不同字符字型相差不大、相同字符有多种不同写法、数字没有上下文关系等等特点,使得脱机手写体数字识别成为识别领域最大的难题和最终的目标。。三、系统组成和关键问题:本系统的开发主要有以下几个步骤:VC环境下MFC编程,利用控件调色板生成按扭,添加程序代码,实现对数字识别的功能。运用模板匹配算法原理,计算图片的特征值。首先实现对模板图片的计算,再对待测试数字图片样本识别。完成系统对字符识别的功能,并且对系统进行分析及测试。关键技术:字符识别; 模板匹配算法;图像的二值化及细化等预处理;& 目&&&&&& 录摘要 .2ABSTRACT .3引言& 4第一章 绪论 & 1.1& 课题研究背景意义 7& 1.2& 字符识别概述 7& 1.3& 字符识别分类 8& 1.4& 研究对象及目标 8&&&&& 1.4.1 研究的对象 ......8&&&&& 1.4.2 研究的目标 ......8& 第二章 模板匹配算法及改进 2.1& 模板匹配算法描述 ..9& 2.2& 模板匹配算法的数学描述 ..10& 2.3& 算法的改进及图示11第三章 图像的预处理& 3.1& 图像的平滑去噪 ..14& 3.2& BMP图像的存储结构 .15& 3.3& 颜色处理 ..17& 3.4& 图像的二值化 ..17& 3.5& 图像的细化 ..18&&&& 3.5.1 细化算法的定义 .......18&&&& 3.5.2 细化的要求 ......19&&&& 3.5.3 Hilditch算法描述 ......19第四章 系统的设计与实现& 4.1& Visual C++ 6.0介绍 ...21&&&& 4.1.1 环境安装及选择的原因 .......21&&&& 4.1.2 MFC概述 .......21& 4.2& 系统界面按扭的生成 ....21& 4.3& 模板计算的实现 .....23&&&& 4.3.1 模板计算设计思想 ...23&&&& 4.3.2 代码实现 ........23& 4.4& 样本测试的实现 .25&&&& 4.4.1 样本测试设计思想 ... ..25&&&& 4.4.2 代码实现 25第五章 系统运行及测试& 5.1& 系统的运行 .28& 5.2& 系统的测试 .28& 5.3& 系统的评价 .30结束语 ..30参考文献 ..30致谢语 ..31附录& 部分代码清单 ..31研究的目标本文所要做的工作是:(1)建立一个无限制手写数字脱机识别系统,要求该系统具有至少90%以上的识别率,并且具备一定的稳定性。(2)建立一个无限制手写大写英文字母脱机识别系统,要求该系统作为手写字符识别系统中的脱机识别部分,要求该系统具有至少85%以上的识别率,并且具备一定的稳定性。模板匹配。因为只有当同一场景的两幅图像在同一坐标系下时,才能进行相似性比较,所以模板匹配的过程实际上也就是把一幅图像变换到另一幅图像的坐标系过程。图像的模板匹配就是先给定一幅图像,然后到另一幅图像中去查找这幅图像,如果找到了,则匹配成功。这看起来好像很简单,因为我们一眼就能看出一幅图中是否包含另一幅图像,遗憾的是电脑并不具有人眼的强大的视觉的功能,因而需要电脑去判定一幅图片中是否包含另一幅图片是件不容易的事情。对于机器视觉系统而言,实现匹配首先要对图像进行预处理。先计算模板图片的特征值,并存储到计算机中。然后计算待测试样板图片的特征值,与计算机中模板进行比较,运用匹配算法实现匹配。整个过程如图&从上述图像匹配系统结构图中可以看出实现匹配要考虑以下几方面内容:(1)图像的数据结构类型:即描述像素灰度值和像素光学特征值之间的信息。(2)图像的特征空间:由特征数据组成,这些特征数据可以是原始像素数据,也可以是经过处理后提取的图像特征数据。(3)存储:将图像处理的一些相关信息资料存储在计算机中,了解其在计算机中存储的结构。(4)匹配算法:是实现匹配的基本思想和方法,是解决匹配问题的关键所在。算法的实现涉及到相似性度量函数的正确选择,相似性度量函数是两幅图像相比较的相似性度量,直接影响着匹配的速度和精度。(5)搜索方法:即遍历图像时的查找策略,正确的选择搜索方法直接影响到匹配的速度。在基于图像处理的应用领域中,对于图像匹配的研究可以说一直都是数字图像处理技术和计算机视觉理解的重要研究内容。图像匹配在机器视觉、工业自动模式识别、医学图像的定位等方面都有着重要意义。&
(需要该计算机毕业设计论文的,请联系我们在线客服)-本设计为全套资料
Copyright &
All Rights Reserved
Powered by}

我要回帖

更多关于 vc字符串转ip 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信