指定された文字列について、数値文字が表示された回数を統計します.
4169 ワード
入力データは複数行あり、最初の行は整数nであり、テストインスタンスの個数を表し、後にn行が続き、各行にはアルファベットと数字からなる文字列が含まれている。各テストインスタンスについて、この列の数値の個数を出力し、各出力が1行を占めます。
#include
int main()
{
int i,j,n,k=0;
char a[1000];
scanf("%d",&n);
getchar();//
while(n--)// n 0
{
gets(a);// '\0'
for(j=0;a[j]!='\0';j++)
{
if(a[j]>='0'&&'9'>=a[j])
k++;
}
printf("%d
",k);
k=0;
}
return 0;
}
1、gets()関数は、標準入力デバイス(キーボード)から改行が終わるまで文字列を読み出すのに使用されますが、改行は破棄され、末尾に'0'文字が追加されます.呼び出しフォーマットはgets(s);ここでsは文字列変数(文字列配列名または文字列ポインタ)である.2、gets(s)関数はscanf("%s",s)と似ていますが、全く同じではありません.scanf("%s",s)関数を使用して文字列を入力する場合、スペースを入力すると文字列が終了し、スペース後の文字は次の入力項目として扱われますが、gets()関数は入力した文字列全体を改行するまで受信します.3、まとめ:gets()関数は(私たちが入力したリターン)を読み取り、読み取りを停止しますが、文字列には含まれません.しかし、それと組み合わせて使用されるputs関数は、文字列を出力するときに自動的に改行されます.4、gets(s)関数の変数sは文字列ポインタである.単一の文字ポインタの場合、コンパイル接続にエラーはありませんが、実行後にメモリオーバーフローエラーが発生します.