rstoi() 函数将以空终止的字符串转换为 short integer 值。
语法
mint rstoi(string, ival)
char *string;
mint *ival;
string
指向以空终止的字符串的指针。
ival
指向保存转换了的值的 mint 值的指针。
用法
值的合法范围为 -32767 - 32767。值 -32768 不是有效的,因为此值为指示空的保留
值。
如果 string 对应于空整数,则 ival 指向 SMALLINT 空的表示。要转换对应于 long
integer 的字符串,请使用 rstol()。该操作的失败可导致错误的数据表示。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 901 -
返回代码
=0
转换成功。
!=0
转换失败。
示例
此样例程序在 demo 目录中的 rstoi.ec 文件中。
/*
* rstoi.ec *
The following program tries to convert three strings to integers. It displays the result of
each conversion.
*/
#include
EXEC SQL include sqltypes;
main()
{
mint err;
mint i;
short s;
printf("RSTOI Sample ESQL Program running.\n\n");
i = 0;
printf("Converting String 'abc':\n");
if((err = rstoi("abc", &i)) == 0)
printf("\tResult = %d\n\n", i);
else
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 902 -
printf("\tError %d in conversion of string #1\n\n", err);
i = 0;
printf("Converting String '32766':\n");
if((err = rstoi("32766", &i)) == 0)
printf("\tResult = %d\n\n", i);
else
printf("\tError %d in conversion of string #2\n\n", err);
i = 0;
printf("Converting String '':\n");
if((err = rstoi("", &i)) == 0)
{
s = i; /* assign to a SHORT variable */
if (risnull(CSHORTTYPE, (char *) &s))
/* and then test for NULL */
printf("\tResult = NULL\n\n");
else
printf("\tResult = %d\n\n", i);
}
else
printf("\tError %d in conversion of string #3\n\n", err);
printf("\nRSTOI Sample Program over.\n\n");
}
输出
RSTOI Sample ESQL Program running.
Converting String 'abc':
Error -1213 in conversion of string #1
Converting String '32766':
Result = 32766
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 903 -
Converting String '':
Result = NULL
RSTOI Sample Program over.