文字列
・数字文字列を数値化する関数AtoS()を制作する。
書式:short AtoS(char *pStr, int *pRetCode);
引数:char *pStr; 文字列の先頭アドレス
int *pRetCode; 動作の正否を返す
戻り値:pStrを数値化した値
処理: pStrで与えられた文字列をshort型に変換する。
呼び出し側の書式は以下の通りです。
void main(void)
{
short val;
int code;
val = AtoS("1234", & code);
printf("%d\n",val);
val = AtoS("-789", & code);
printf("%d\n", val);
}
です。
自分自身で、正の整数はできました。見てください。そして、負の整数や、「int *pRetCode」の使い方をおしえてください。
#include <stdio.h>
short AtoS(cahr *pStr, int *pRetCode);
void main(void)
{
short val;
int code;
val = AtoS("1234", & code);
printf("%d\n", val);
val = AtoS("-789", & code);
printf("%d\n", val);
}
short AtoS("char *pStr, int *pRetCode)
{
short suu;
suu = 0;
while("\n" != *pStr) {
suu = *pStr - '0' + suu * 10;
pStr++;
}
return(suu);
}
までしかできません。どなたか教えてください。
お礼
ご迷惑をかけてすいません。 どうやらデータの間に空白があると、 無効になるみたいです。 今、消している最中です。 回答ありがとうございました。