2017-04-23 12 views
-2

こんにちは、これは私のコードです:私は、ユーザー、文字列からの入力を受け付けるプログラムを作成しようとしているC++整数配列に文字列を変換

#include<iostream> 
#include <stdio.h> 
#include <math.h> 

void bubbleSort(int ar[]); 

using namespace std; 
int main() 
{ 

    char t = 'f'; 
    char *t1; 
    char **t2; 
    cout<<t; 


    int choice; 

    std::cout << "\nWelcome to the algortihm tester!\n"; 
    std::cout << "What algorithm would you like to test?"; 
    std::cout << "\nChoose: \n1.Bubble Sort\n2.Selection Sort\n3.Insertion Sort\n"; 
    scanf("\n%d", &choice); 

    switch(choice) 
    { 
    case 1: 


     std:: string trash; 
     std::string str; 
     std::cout << "\nINPUT:"; 
     std::getline (std::cin,str); 
     std::getline(std::cin,trash); 
     int* myarray = new int[str.size() ]; 
     std::copy(str.begin(), str.end(), myarray); 
     bubbleSort(myarray); 
     break; 
    } 
} 


void bubbleSort(int myarray[]) 
{ 

    int length = sizeof(myarray)/sizeof(myarray[0]); 
    int i; 
    for(i=(length-1); i >= 0; i--) 
    { 

     for(int j =1; j<=i; j++) 
     { 
      if (myarray[j-1]>myarray[j]) 
      { 
       int temp = myarray[j-1]; 
       myarray[j-1]=myarray[j]; 
       myarray[j]=temp; 


      } 

     } 

    } 

} 

、それを配列にコピーし、その取得しを配列は関数bubbleSortに渡されます。しかし、私はそれを実行するとき、私は結果が0になる、つまり、文字列が配列に正しくコピーされなかったことを意味します。私はC++を初めて使い慣れていて、シンタックスにはそれほど精通していません。文字列を整数配列に変換するにはどうすればよいですか?

+0

あなたのコードはそのままです。 'main'関数と' switch'ステートメントは不完全です。 – InternetAussie

+0

私はそれらのコードを取ったので、私はちょうど1の場合にあるbubblesortを評価したかったので、 –

答えて

0

私が正しく理解していれば、x intの入力をbubblesortにスローして並べ替えたいと思っています。

あなたが望む多くの整数として入力し、vectorを使用することができ、その後、あなたはintarrayからvectorbubblesortで使用することをコピーすることができます。

何かを並べ替える最良の方法ではありませんが、練習のためにやっているようですので、これはあなたが望むものを達成するための1つの方法です。

ご希望の場合は、コード例があります。お知らせ下さい。 また、コードはそのまま壊れています。

最初に文字列を使用すると思われたのはなぜですか?あなたはint型ではない値を与えるまでここ

コード

vector<int> array; 
cout << "Enter numbers\n"; 
int tmp; 
while (cin >> tmp) 
    array.push_back(temp); 


while (cin >> tmp) 

この行は、その下の行をループします。その後、あなたは何かのようにする。

int *arr = new int[array.size()]; 
std::copy(v.begin(), v.end(), arr); 

これで完了です。 うまくいけば私はあなたを手伝った。 私の解決策に間違いがあると思われる場合は、修正するようにコメントしてください

+0

ohhhhhhhだから、この "ベクトル"がある、あなたはこれを行う方法の例を教えてくれますか?私は文字列を整数配列に変換することで仕事ができると思ったので、バブルソートで並べ替えることができます。私はPythonとJavaでこれを書いたが、C++でそれを理解することはできない。 –

+0

@JedHart最新の回答を見る –

関連する問題