迭代字符串并用C ++填充数组

时间:2017-03-01 05:53:57

标签: c++ arrays loops

我正在处理这个迭代字符串的代码 - 在这种情况下实际上是一个表示整数的字符串 - 并用字符串的每个“数字”填充一个数组。因此字符串"350"将生成包含元素{3,5,0}的数组。 这是代码:

    #include <stdlib.h>
    #include <iostream>

    using namespace std;

    int main() {
      int arr[5];
        string test = "10000";
      for(unsigned int i = 0; i<test.length(); i++) {
        char c = test[i]; 
        cout << c << endl;
        arr[i] = c;

    }
    //printing the array for testing
    for (int i = 5 - 1; i >= 0; i--) 
        cout << arr[i];
        return 0;
    }
     char c = test[i]; 
            arr[i] = c;
        }
            return 0;
    }

问题是由此产生的数组是{49,48,48,48,48}。我不知道它为什么这样做以及我的代码出错了。为什么要添加数字49和48,我该如何解决这个问题?

此外,如果它可以帮助任何人,这里有一个指向运行代码的步进器的链接: http://pythontutor.com/visualize.html#code=%0A%23include%20%3Cstdlib.h%3E%0A%23include%20%3Ciostream%3E%0A%0A%0Ausing%20namespace%20std%3B%0A%0A%0A%0Aint%20main%28%29%20%7B%0A%20%20int%20arr%5B5%5D%3B%0A%09string%20test%20%3D%20%2210000%22%3B%0A%20%20for%28unsigned%20int%20i%20%3D%200%3B%20i%3Ctest.length%28%29%3B%20i%2B%2B%29%20%7B%0A%20%20%20%20char%20c%20%3D%20test%5Bi%5D%3B%20//this%20is%20your%20character%0A%20%20%20%20arr%5Bi%5D%20%3D%20c%3B%0A%7D%0A%09return%200%3B%0A%7D%0A%0A%0A&cumulative=false&curInstr=19&heapPrimitives=false&mode=display&origin=opt-frontend.js&py=cpp&rawInputLstJSON=%5B%5D&textReferences=false

3 个答案:

答案 0 :(得分:1)

48和49是ascii中的0和1。您需要将ascii转换为数字。

答案 1 :(得分:1)

您在数组中看到的是插入字符的ascii。 以下是将角色转换为整数的方法: <form action="search" method="post" action="{{ url(/search) }}"> // pass the route in action attribute of form tag Route::post('/search', 'UserController@search);

答案 2 :(得分:0)

您创建了arr作为整数数组,因此通过为其指定字符元素,您可以隐式地将它们转换为整数。执行此操作时,将打印字符的ASCII值,而不是字符本身。您应该使用一个字符数组。

char arr[5];