2017-02-05 15 views
-1

これは[i]が小文字かどうかを確認するために書いたコードです。エラー〜文字が小文字であることを確認してください

#include<iostream> 
    #include<conio.h> 
    #include<stdio.h> 
    using namespace std; 
    int main() 
    { 
     int i=0; 
     char str[i]="Enter an alphabet:"; 
     char i; 
     while(str[i]) 
      { 
       i=str[i]; 
       if (islower(i)) i=toupper(i); 
       putchar(i); 
       i++; 
      } 
     return 0; 
    } 

私が取得mがエラーの問題は、エラーメッセージが言うまさに

||=== Build: Debug in practice (compiler: GNU GCC Compiler) ===| 
    C:\Users\Public\Documents\krish\practice\main.cpp||In function 'int main()':| 
    C:\Users\Public\Documents\krish\practice\main.cpp|9|error: conflicting declaration 'char i'| 
    C:\Users\Public\Documents\krish\practice\main.cpp|7|note: previous declaration as 'int i'| 
    ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 
+1

、あなたは本当に 'islower'チェックは必要ありません。 ['std :: toupper'](http://en.cppreference.com/w/cpp/string/byte/toupper)は、引数が小文字でない場合は、そのまま引数を返します。 –

+0

今後、実際に*エラーメッセージを読んでみてください。メッセージは非常に明確です。 –

答えて

2

されている:あなたは二回iを宣言します。一度はchar、もう一度はintとなります。

int i=0; // declare i as int and assign 0 
char str[i]="Enter an alphabet:"; 
char i; // declare i as char -> i is already declared as int. 

変数の名前を変更してください。

conio.hも使用しないでください。これは標準のCライブラリの一部でもPOSIXによって定義されていません。

+0

ゼロサイズの配列を使用できるC++のバージョンはどれですか? – Raindrop7

0

新しいコード~~~

/* islower example */ 
     #include <stdio.h> 
     #include <ctype.h> 
     int main() 
     { 
     int i=0; 
     char str[]="Test String.\n"; 
     char c; 
     while (str[i]) 
     { 
     c=str[i]; 
     if (islower(c)) c=toupper(c); 
     putchar (c); 
     i++; 
     } 
     return 0; 
     } 

今その作業~~

1

コンパイル時に一定の大きさと、非ゼロの大きされている必要があり、配列:

int i = 0; 
char str[i] = "Enter an alphabet:"; // 

上記あなたのコードのiは一定でなければならず、0であってはなりません。

ますので、このようにそれを宣言することができます。また、ここ

const int SIZE = 50; 
char str[SIZE] = "Enter an alphabet:"; 

:あなたの上

char i; 
while(str[i]) 

は、それを初期化せずにiを使用し、あなたは配列のインデックスとしてcharを使用します!あなたのコードは次のようになり

:無関係な注記で

const int SIZE = 50; // constant size 
    char str[SIZE] = "Enter an alphabet:"; 

    //if you want : char str[] = "Enter an alphabet:"; 

    int i = 0; // initialize 
    while(i < strlen(str)) 
    { 
     char c = str[i]; 
     if(islower(c)) 
      c = toupper(c); 
     putchar(c); 
     i++; 
    } 
関連する問題