c语言如何用配列表示素数,12.基本ライブラリ

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

main()

{

char str[11];

int n;

printf("数字を入力(10桁以内) : ");

scanf("%s",str);

printf("%s が入力されました\n",str);

n = atoi(str);

printf("整数に変换し n に代入しました\n");

printf(" n = %d\n",n);

printf("2n = %d\n",n*2);

return;

}

◇実行结果8(123と入力した场合)

数字を入力(10桁以内) : 123

123 が入力されました

整数に変换し n に代入しました

n = 123

2n = 246

これでめでたく数値に変换できました。

・・・ただし、これで终わってはいけません。

<<『例外処理はどうなってるのか?』>>

そう、文字列から変换を行うということは、数字以外の文字が入力された场合

どうなってしまうのかということを考虑しなくてはなりません。

(最终的には数字以外の入力を受け付けないようにすべきですが・・・)

ここでatoi関数がどのような例外処理をするのかを検讨します!

例1:最初に-(マイナス)を入力

数字を入力(10桁以内) : -836

-836 が入力されました

整数に変换し n に代入しました

n = -836

2n = -1672

例2:小数点付

数字を入力(10桁以内) : 1100.23

1100.23 が入力されました

整数に変换し n に代入しました

n = 1100

2n = 2200

例3:数字以外の文字を混ぜる

数字を入力(10桁以内) : 234e4

234e4 が入力されました

整数に変换し n に代入しました

n = 234

2n = 468

例4:先头に+(プラス)记号

数字を入力(10桁以内) : +24

+24 が入力されました

整数に変换し n に代入しました

n = 24

2n = 48

例5:途中に+や-

数字を入力(10桁以内) : 438+45-6

438+45-6 が入力されました

整数に変换し n に代入しました

n = 438

2n = 876

例6:デタラメ

数字を入力(10桁以内) : dspjvci

dspjvci が入力されました

整数に変换し n に代入しました

n = 0

2n = 0

以上実験结果としてatoiは先头は符号あるいは数字、2番目から数字を见て

不正な文字か'\0'までを値に変换していることがわかりました。

9.型変换関数(文字列→倍长整数)

関数名       :atol

必要なヘッダ:stdlib.h

関数のタイプ:long atol (const char *s);

引数         :s 文字列へのポインタ

戻り値       :変换后の数値

前回とほぼ同じで、违いは変换される値がlong型になることです。

◇サンプルプログラム9

#include

#include

main()

{

char str[11];

long n;

printf("数字を入力(10桁以内) : ");

scanf("%s",str);

printf("%s が入力されました\n",str);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值