【C大事】第四讲:重复代码封装函数的思想

将重复代码抽象成函数:
判断一段字符串是否为合法的。

小技巧:把字符串转为整数后,在将其转为字符串,判断是否为源字符串。vc中可以,拿到c语言中就不适合了。



 

BOOL IsInt(TCHAR* str){
  int i = atoi(str);
  TCHAR strtmp[256];
  wsprintf(strtmp, "%i", i);
  if(strcmp(str, strtmp) != 0){
    return false;
  }else{
    return true;
  }

}

 

TCHAR str1[256];
TCHAR str2[256];
GetDlgItemText(hwnd, IDC_EDIT1, str1, sizeof(str1) );
GetDlgItemText(hwnd, IDC_EDIT2, str2, sizeof(str2) );
if(IsInt(str1) == false){
    MessageBox(hwnd, TEXT("第一个参数非法"), TEXT("错误提示"), MB_OK | MB_ICONERROR);
    return;
}
if(IsInt(str2) == false){
    MessageBox(hwnd, TEXT("第二个参数非法"), TEXT("错误提示"), MB_OK | MB_ICONERROR);
    return;
}

int i1 = atoi(str1);
int i2 = atoi(str2);
int i3 = i1 + i2;
TCHAR str3[256];
wsprintf(str3, "%i", i3);
SetDlgItemText(hwnd, IDC_EDIT3, str3);

 

 

时间: 2024-09-12 06:17:27

【C大事】第四讲:重复代码封装函数的思想的相关文章

java android-java怎样让两个类都拥有1个类的方法,不复制,不出现重复代码

问题描述 java怎样让两个类都拥有1个类的方法,不复制,不出现重复代码 有A.B.C.D四个类, C包含了A.B都需要用到的方法; D是SDK的一个类,不可改变; A继承的C,B继承的D,怎样才能使B也拥有C的方法. 类似多继承的概念?又不能直接复制,这样代码大量重复 解决方案 public class B extends D{ private class InnerB extends C{ } } 解决方案二: 在B中定义inner class,继承C 解决方案三: 要么使用类的聚合,包含一

《ArcGIS Engine+C#实例开发教程》第四讲 状态栏信息的添加与实现

原文:<ArcGIS Engine+C#实例开发教程>第四讲 状态栏信息的添加与实现 摘要:在上一讲中,我们完成了 MapControl 和PageLayoutControl两种视图的同步工作,本讲我们将完成状态栏信息的添加与实现.应用程序的状态栏一般用来显示程序的当前状态,当前所使用的工具. GIS应用程序一般也在状态栏显示当前光标的坐标.比例尺等信息.学习完本讲内容,您将学会状态栏编程的基本方法,并且能够在我们的程序的状态栏中添加且显示以下信息:当前所用工具信息.当前比例尺.当前坐标.  

printf-mooc上老师讲的代码有两段没有看太懂

问题描述 mooc上老师讲的代码有两段没有看太懂 代码如下 #include<stdio.h> //输入数字然后程序判断这是几位数 int main (){ int x n=0; //x输入的数字 n是用来输出的位数 scanf(""%d""&x); n=n+1; // 3 只要输入数字都是1位以上的不存在0位所以先+1 x /=10; // 4 利用两整数相除省略小数部分,将输入的数字位数减去1位 while(x>0) //判断输入的数字

BrnShop开源网上商城第四讲:自定义插件

原文:BrnShop开源网上商城第四讲:自定义插件 重要通知:BrnShop企业版NOSQL设计(基于Redis)已经开源!源码内置于最新版的BrnShop中,感兴趣的园友可以去下载来看看.官网地址:www.brnshop.com. 好了现在进入今天的正题:自定义插件.上一讲中我们已经阐述了BrnShop插件的工作机制,现在我们详细介绍下如何自定义插件.首先BrnShop的插件从功能上分为三类,分别是: 开放授权插件(OAuth) 支付插件 配送插件 对应的接口文件(注:位于BrnShop.Co

Javascript基础与面向对象基础~第四讲 Javascript中的类对象

今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一般是从这点上看出来的. 占占对类的定义: 类是对现实中的事物的抽象,一个类一般由属性和方法构成,属性是一些固定的信息,而方法是类的某种行为,类往往用来抽象一些复杂的对象,类与类这间可以进行继承,一般通过JS的function实现,JS中的类对象是实现JS面向对象的基础. 占占对结构体的定义: 一个结构体也是对

架构,改善程序复用性的设计~第四讲 方法的重载真的用不到吗?

在第三讲中我们主要关注了代码重构的思想,从方法重构到类重构再到项目重构,这是一个过程,一种思想上的升华,今天将继续我们"程序复用性设计"的旅程,说一下方法重载的重要性. 细心的朋友一定会非常关注net frameworks的源代码,即使只能看到它内部方法的定义,也足够了,在System.Web.Mvc这个命名空间下定义了很多关于MVC架构的东西,我们就以它为例来说一下方法重载吧! 重载的好处: 1 对方法调用的程序员来说,它是友好的(程序员只关心自己调用的方法签名即可,不用管参数为NU

用VB将ASP代码封装成DLL

封装|封装 摘 要 主要介绍用VB将ASP代码封装成DLL以保护 ASP代码和加快ASP代码的执行速度.节省服务器的资源关键词 ASP,DLL,编程一.引言Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本可以在 Server端直接运行,并且它支持多用户.多线程,在 Web开发中得到了广泛的应用.服务器端的组件有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用,而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都

避免重复代码——know your library(续)

之前写过一帖,避免重复代码--know your library.今天外面下雨心情不咋,干脆再来发发牢骚好了 =v= 上周某公司来这边招聘,C++版的卷里据说有一题是要求对一个装有自定义的struct的vector做排序的.struct有两个field,一个int num和一个string name:排序要求按照num升序,如果num相等则按照name升序.原题到底是啥样的我不知道,不过据说就是一个裸的struct,或许是这样? C++代码 struct Person { int num; st

避免重复代码——know your library

刚才在读一段代码的时候看到了一个不怎么有趣的方法: C#代码 /// <summary> /// Add enough zeros to a number as to be represented on 4 characters /// </summary> /// <param name="offset"> /// The number that must be represented on 4 characters /// </param&