186上位机VC MFC字符串对比加减转换整形相关控制
186上位机VC MFC字符串对比加减转换整形相关控制 功能展示 在涉及参数保存打开操作时就会用到字符串相关的编程,我们当前例程罗列出常用字符串操作功能实现,如字符串的相加,比较,提取,字符串的总长度宽度获取,整数浮点数转为字符串等等的操作,效果如图; 要点提示 字符串的相关操作我们一般用Cstring内的成员函数,字符串对比操作可以用函数CompareNoCase()或Compare(); 指定字符串的总长度和宽度可以用CDC的成员函数GetTextExtent()获得; 字符串的格式化可以用Cstring的成员函数Format(),此函数共有两参数,参数一为格式化控制,参数二为受格式化对象; 格式化控制有 %c 单个字符 %d 十进制整数(int) %ld 十进制整数(long) %f 十进制浮点数(float) %lf 十进制浮点数(double) %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 实现功能 1.新建基于对话框的应用程序 2.拖拽两编辑框控件用于输入字符串转换用; 3.依次添加按钮控件,字符串相加保存,字符串比较保存,字符串提取保存,字符串长宽获取,字符串格式化,整数int转为字符串,浮点数float转为字符串,字符串赋值给字符指针,按钮控件函数为 - void CGkbc8Dlg::OnAdd()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- GetDlgItemText(IDC_EDIT2,sText2);
- sText1+=sText2;//字符串相加
- SaveLog(sText1);//结果字符串保存到文件
- MessageBox(sText1,"");
- }
- void CGkbc8Dlg::OnFormat()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- GetDlgItemText(IDC_EDIT2,sText2);
- //
- CString sText;
- sText.Format("%s--%s",sText1,sText2);
- SaveLog(sText);//结果字符串保存到文件
- MessageBox(sText,"信息提示",MB_OK);
复制代码- void CGkbc8Dlg::OnCompare()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- GetDlgItemText(IDC_EDIT2,sText2);
- if(sText1.CompareNoCase(sText2)==0)
- {
- sText1+="相同于(使用CompareNoCase比较)";
- sText1+=sText2;
- SaveLog(sText1);//结果字符串保存到文件
- MessageBox(sText1,"信息提示",MB_OK);
- }
- if(sText1.Compare(sText2)!=0)
- {
- sText1+="不同于(使用Compare比较)";
- sText1+=sText2;
- SaveLog(sText1);//结果字符串保存到文件
- MessageBox(sText1,"信息提示",MB_OK);
- }
- }
- void CGkbc8Dlg::OnGet()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- GetDlgItemText(IDC_EDIT2,sText2);
- int nIndex=sText1.Find(sText2);
- if(-1 != nIndex)//字符串sText1中找到sText2时
- {
- CString sText;
- sText.Format("%d--%d",nIndex,nIndex+sText2.GetLength()-1);
- sText2+=" 在 ";
- sText2+=sText1;
- sText2+=" 的字节范围为:";
- sText2+=sText;
- SaveLog(sText2);//结果字符串保存到文件
- MessageBox(sText2,"信息提示",MB_OK);
- }
- }
- }
复制代码- void CGkbc8Dlg::OnInt()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- //
- int iDigital=atoi(sText1)+123456;
- sText2.Format("%d",iDigital);
- SetDlgItemText(IDC_EDIT2,sText2);
- SaveLog(sText2);//结果字符串保存到文件
- MessageBox(sText2,"信息提示",MB_OK);
- }
- void CGkbc8Dlg::OnFloat()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- //
- float iFloat=atof(sText1)+123.45;
- sText2.Format("%f",iFloat);
- SetDlgItemText(IDC_EDIT2,sText2);
- SaveLog(sText2);//结果字符串保存到文件
- MessageBox(sText2,"信息提示",MB_OK);
- }
- void CGkbc8Dlg::OnValue()
- {
- CString sText1;
- //
- LPTSTR lpszText = _T("LPTSTR >> CString");
- sText1.Format( _T("%s"), lpszText );
-
- SetDlgItemText(IDC_EDIT2,sText1);
- SaveLog(sText1);//结果字符串保存到文件
- MessageBox(sText1,"信息提示",MB_OK);
- }
复制代码- void CGkbc8Dlg::OnStrsize()
- {
- CString sText1,sText2;
- GetDlgItemText(IDC_EDIT1,sText1);
- GetDlgItemText(IDC_EDIT2,sText2);
- //
- CDC *pDC=GetDC();
- CSize Size=pDC->GetTextExtent(sText1,sText1.GetLength());
- CSize Size1=pDC->GetTextExtent(sText2,sText2.GetLength());
- CString StrSize;
- StrSize.Format("字符串长宽分别为:%d:%d--%d:%d",Size.cx,Size.cy,Size1.cx,Size1.cy);
- SaveLog(StrSize);//结果字符串保存到文件
- MessageBox(StrSize,"信息提示",MB_OK);
- }
复制代码我们来演示整个功能实现过程
|