指定された文字列について、数値文字が表示された回数を統計します.

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は文字列ポインタである.単一の文字ポインタの場合、コンパイル接続にエラーはありませんが、実行後にメモリオーバーフローエラーが発生します.