2012-03-08 31 views
1

私は単なる学生であり、この配列についてはC++で知りたい。文字を英数字と非英数字に分割する

どのように配列n と、アレイt上のすべての非英数字に配列kで入力されたすべての英数字文字を表示することができますか?

この私が次の

int main(int argc, char *argv[]) 
{ 
    char k[8], n[8], t[8]; 

    int ctr, nctr, tctr; 

    for(ctr=0; ctr<8; ctr++){ 
    cout << "Input 1st Element "; 

    cin >> k[ctr]; 
    if (isalnum(k[ctr])) 
+0

私は困惑している...しかし、あなたの学生以来誤りますか? – Gabe

+0

'if-then-else'構造体や配列に何かを置くのに助けが必要な部分はありますか? – Beta

+0

入力と出力の例がありますか? – balki

答えて

0
#include <string.h> 
#include <iostream> 

using namespace std; 

int main(void) { 

     char k[8], n[8], t[8]; 

     strcpy(k,"--------"); 
     strcpy(n,"--------"); 
     strcpy(t,"--------"); 

    for (int pos = 0, tcntr = 0, ncntr =0; pos < 8; pos++) { 
      cout<<"Input your char < : "; 
      cin>>k[pos]; 

       if (isalnum(k[pos])) { 
         n[ncntr] = k[pos]; 
         ncntr++; 
       } else { 

         t[tcntr] = k[pos]; 
         tcntr++; 
       } 
     } 

     cout<<"Alpha numernic chars ::"<<n<<endl; 
     cout<<"Non Aplha numberic chars ::"<<t<<endl; 
} 


Input your char < : 3 
Input your char < :^
Input your char < : d 
Input your char < : & 
Input your char < : f 
Input your char < : 1 
Input your char < : 7 
Input your char < : 1 
Alpha numernic chars ::3df171-- 
Non Aplha numberic chars ::^&------ 
+0

あなたのお役に立てれば幸いです。 http://i893.photobucket.com/albums/ac135/melwinjay/ass.jpg – noob

+0

あなたの答えは正しいですしかし、私はそれに問題があると思う 私は1 - 9配列kにそれは英数字の文字とこのような非英数字の文字を印刷する................... ................ 英数字:1234567812345678x " アルファベット以外の文字:d キーを押し続ける。 – noob

+0

チェックするあなたがこの答えを見つけた場合は、親切に投票してください。 – alkber

0

だかわからない何私が作った、そしてどのように私は、アレイに配列kに入力され、すべての英数字の文字を表示し、n及び配列t上のすべての非英数字ができますか?

「表示」とは「コピー」を意味しますか?条件を使用してください:

int ctr, nctr = 0, tctr = 0; // note how I explicitly set the counters to 0 

for (ctr = 0; ctr < 8; ctr++) 
{ 
    cout << "Input Element " << ctr << ": "; 

    cin >> k[ctr]; 
    if (isalnum(k[ctr])) 
    { 
     n[nctr++] = k[ctr]; 
    } 
    else 
    { 
     t[tctr++] = k[ctr]; 
    } 
} 

これはあなたが望むものではない場合は、詳細を入力してください。

+0

@noob ???要素を入力し1 : @要素を入力します:3 要素を入力します:5 要素を入力します:% は、Elementを入力します。# は、Elementを入力します7 – sehe

+0

要素を入力することを何 は、要素を入力:8 英数字: 1 3 5 7 8 - - - 非Alphanu量体: @#% - - - - - 出力は、そのようにする必要があります。.. ユーザーは、アレイのk 上の英数字の文字を入力すると、そのアレイk上のすべての英数字の文字がオンにコピーする必要があります 配列nとそれ以外のアルファベット以外の数字は配列tになります – noob

+0

あなたは私が助けることができることを願って、正確な出力tnxが何であるかを知るためにリンクをご覧ください。 i893.photobucket.com/albums/ac135/melwinjay /尻。jpg – noob

0

STLの使用が許可されている場合は、partition_copyが最適なソリューションです。配列kを2つの配列ntに分割するには、与えられた述語(あなたの場合はcharが英数字であるかどうか)をチェックします。このように:私はそれを読んで、あなたのより良い答えを与えることができるようにあなたは、実際の譲渡へのリンクやsoemthingを投稿することができ、

#include <string> 
#include <iostream> 
#include <algorithm> 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    const size_t len = 8; 
    char k[len], n[len], t[len]; 

    // Input your data... 

    // Copy all alphanumeric chars in n and non-alphanumeric to t 
    partition_copy(k, k + len, n, t, isalnum); 
} 
+0

これは私にこのエラー 'partition_copy'を宣言していません(最初にこの関数を使用) – noob

+0

どのコンパイラを使用しますか? Visual Studioの場合、MSVC2010の前には 'partition'関数しかありません。それは同じことを行うが、インプレースを行う。 MSDNを確認してください。 – Mikhail

+0

私はDev C++を使っています – noob

関連する問題