江苏省盐城亭湖区邮编:vc++从文本框取得数值(注意不是字符串)的方法

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/02 09:09:44
请问如果按下按钮后,按要求取得文本框中的数字,并存到一个整形数组中。
比如010-4444-55555,去掉“-”取得“010”,“4444”,“ 55555”三个数值,010存到a[0],4444存到a[1],55555存到a[2],应该使用什么方法。

为文本框关联一个CString类型的变量(假设是str),在点击按钮的响应函数里调用UpdateData(TRUE),把文本框的内容传给关联的变量str。然后再用CString的查找和取子串函数配合把各数字分离出来。

先把010-4444-55555存到一个字符串里,再用几个while语句转换成数字

b=split(s,"-")
for i=0 to ubound(b)
a(i)=val(b(i))
next i

Split函数

描述

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法

Split(expression[, delimiter[, count[, compare]]])

Split函数语法有如下几部分:

部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。

设置值

compare参数的设置值如下:

常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。

b=split(s,"-")
for i=0 to ubound(b)
a(i)=val(b(i))
next i

Split函数

描述

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法

Split(expression[, delimiter[, count[, compare]]])

Split函数语法有如下几部分:

部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。

设置值

compare参数的设置值如下:

常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。