読者です 読者をやめる 読者になる 読者になる
【スポンサーリンク】

【C言語解説】yukicoder No.289 数字を全て足そう

【問題】
文字列SSが与えられるので, その中のそれぞれの数字を1桁の数値とみなして, 全ての合計値を求めてください.
例えば1test23という文字列の数字の合計値は1+2+3=61+2+3=6となる.

注意: 数字がない場合は0を出力してください。

#include <stdio.h>
#include <string.h>

int main(void) {
	int sum=0, i;
	char s[10000];

	gets(s);
	for(i=0; s[i]; i++){
		if(s[i]>='0' && s[i]<='9'){
			sum += s[i]-'0';
		}
	}
	printf("%d", sum);
	return 0;
}
  • 数字だった場合、値を加算していくための「sum」を宣言しておく。
  • 「s」は条件で10000文字以下だったので添字を10000に。
  • 「gets」で文字列を受け取る。
  • for文で「i」を回す。
  • もし s[i] が'0'以上、'9'以下なら「sum」に加算する。
  • 「sum」を標準出力する

『 for(i=0; s[i]; i++) 』の条件式が気になる!

引用させていただきました。

『if(s[i]>='0' && s[i]<='9')』の条件式も気になる!

引用させていただきました。

sは半角英数字からなるので、if(s[i]<='9')だけで数字と判別できる

yukicoder No.289 数字を全て足そう - メモ

sugarknri.hatenablog.com


勉強になりました!

【スポンサーリンク】