- ベストアンサー
c言語がわかりません。
(1)入力された文字列(10文字以下)の`a`の文字を除き、結果を表示するプログラムを作成する。 (2)入力された文字列について、数文字(0から9)の各々の出現個数と、それ以外の文字の出現個数をカウントし表示するプログラムを作成する。
- みんなの回答 (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)
- okakesan1234
- ベストアンサー率23% (46/195)
#1の回答は 出題文の 「数文字(0から9)の各々の出現個数」 というのを満たしてないので不正解! というか、ベタで回答書くヤツなんてあまりみかけないね。
- gerugugu84
- ベストアンサー率37% (29/78)
#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; }