お願いします
Posted: 2012年4月21日(土) 12:55
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void main( void ) {
int hindo[26];
int i, c;
char name[20];
FILE *fp;
setbuf(stdout,0);
if ( (fp = fopen("fdct2.c", "r")) == NULL ) {
printf( "* Cannot open file.\n" );
exit( EXIT_FAILURE );
}
for ( i = 0; i < 26; ++i )
hindo = 0;
while ( (c = getc( fp )) != EOF )
if ( isalpha ( c ) )
++hindo[ c - 'a' ];
fclose( fp );
for ( i = 0; i < 26; ++i ) {
printf( "%c → %d\n", 'a' + i, hindo );
}
printf("名前をアルファベットで入力 ");
scanf("%s", name);
for ( i = 0; i < name; ++i ) {
printf("%c → %d\n",name, hindo[name - 'a']);
}
}
ここから名前の中に重複する文字があったら、その文字のプログラム中での出現回数を、アルファベット順に一度だけ表示するように作り変えたいのですが、どうすればいいか教えてください。
#include <stdlib.h>
#include <ctype.h>
void main( void ) {
int hindo[26];
int i, c;
char name[20];
FILE *fp;
setbuf(stdout,0);
if ( (fp = fopen("fdct2.c", "r")) == NULL ) {
printf( "* Cannot open file.\n" );
exit( EXIT_FAILURE );
}
for ( i = 0; i < 26; ++i )
hindo = 0;
while ( (c = getc( fp )) != EOF )
if ( isalpha ( c ) )
++hindo[ c - 'a' ];
fclose( fp );
for ( i = 0; i < 26; ++i ) {
printf( "%c → %d\n", 'a' + i, hindo );
}
printf("名前をアルファベットで入力 ");
scanf("%s", name);
for ( i = 0; i < name; ++i ) {
printf("%c → %d\n",name, hindo[name - 'a']);
}
}
ここから名前の中に重複する文字があったら、その文字のプログラム中での出現回数を、アルファベット順に一度だけ表示するように作り変えたいのですが、どうすればいいか教えてください。