• ベストアンサー

c言語がわかりません。

(1)入力された文字列(10文字以下)の`a`の文字を除き、結果を表示するプログラムを作成する。 (2)入力された文字列について、数文字(0から9)の各々の出現個数と、それ以外の文字の出現個数をカウントし表示するプログラムを作成する。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

ベタで回答を書くと... > (1)入力された文字列(10文字以下)の`a`の文字を除き、結果を表示するプログラムを作成する。 #include <stdio.h> int main(void) {  char s[10+1];  scanf("%10[^\n]", s);  for (char const* ss = s; *ss != '\0'; ss++)   if (*ss != 'a') putchar(*ss);  putchar('\n'); } > (2)入力された文字列について、数文字(0から9)の各々の出現個数と、それ以外の文字の出現個数をカウントし表示するプログラムを作成する。 #include <stdio.h> #include <ctype.h> #include <inttypes.h> int main(void) {  uintmax_t count[11] = { 0 };  for (;;)  {   int c = getchar();   if (c == EOF || c == '\n')    break;   ++count[isdigit(c) ? c - '0' : 10];  }  for (int i = 0; i <= 9; i++)   printf("'%d'の個数: %" PRIuMAX "\n", i, count[i]);  printf("それ以外の個数: %" PRIuMAX "\n", count[10]); }

その他の回答 (2)

回答No.2

#1の回答は 出題文の 「数文字(0から9)の各々の出現個数」 というのを満たしてないので不正解! というか、ベタで回答書くヤツなんてあまりみかけないね。

回答No.1

#include <stdio.h> (1)のプログラム int main() { char str[ 256 ]; printf( "半角255文字まで入力してください>" ); scanf( "%s", str ); char* ptr = str; while( '\0' != *ptr ) { if( 'a' != *ptr ) printf( "%c", *ptr ); ++ptr; } return 0; } (2)のプログラム int main() { char str[ 256 ]; printf( "半角255文字まで入力してください>" ); scanf( "%s", str ); int numCount = 0; int charCount = 0; char* ptr = str; while( '\0' != *ptr ) { if( '0' <= *ptr && '9' >= *ptr ) ++numCount; else ++charCount; ++ptr; } printf( "数字=%d個 その他の文字=%d\n", numCount, charCount ); return 0; }

関連するQ&A