我正在处理这个迭代字符串的代码 - 在这种情况下实际上是一个表示整数的字符串 - 并用字符串的每个“数字”填充一个数组。因此字符串"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,我该如何解决这个问题?
答案 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];