私は多少言語(C)に新しいですが、私がやろうとしているのはかなり簡単です。私は確かに何かを無視したり、いくつかの論理的なエラーに走っていると確信しています。大文字レター数、小文字、空白数、下位から上位への変換 - C
私のプログラムでは、小文字、大文字、空白の数を数えたいと思っています。追加機能として、入力された小文字も大文字に変換します。この中
#include <stdio.h>
int main(void){
int iochar, numdigits=0, numlower=0, numupper=0, numwhites=0;
printf("Please enter a phrase:\n\n");
while((iochar=getchar())!=EOF) {
if ((iochar=' ')||(iochar='\t')||(iochar='\n')){
numwhites++;
putchar(iochar);
}
else if((iochar>='0')&&(iochar<='9')) {
numdigits++;
putchar(iochar);
}
else if(('a'<=iochar)&&(iochar<='z')) {
numlower++;
putchar(iochar-32);
}
else if(('A'<=iochar)&&(iochar<='Z')) {
numupper++;
putchar(iochar);
}
else
putchar(iochar);
}
printf("%d white characters, %d digits, ",numwhites,numdigits);
printf("%d lowercase have been converted to ",numlower);
printf("uppercase and %d uppercase.\n",numupper);
printf("\n\n");
return 0;
}
良い。そして、何が問題なのですか? – ouah
=と==を区別することができない場合は、コーディング中に、比較中に定数を左に保ちます。例えばif( '' == iochar)。あなたはこのようにミスを避けることができます。 – yadab
@yadab:そして比較の両辺が左辺値であるときに、どうやって間違いを避けるのですか? –