我有像这样的char数组:
private void LoadModel_cmbBx()
{
string strCon = Properties.Settings.Default.Database2ConnectionString;
using (OleDbConnection conn = new OleDbConnection(strCon))
{
try
{
string strSql = "Select Model from EquipmentTable where [Manufacturer] = '" + Manufacturer_cmbBx.Text + "' and [Type] = '" + Type_cmbBx.Text + "'";
OleDbDataAdapter adapter = new OleDbDataAdapter(new OleDbCommand(strSql, conn));
DataSet ds = new DataSet();
adapter.Fill(ds);
Model_cmbBx.DataSource = ds.Tables[0];
Model_cmbBx.ValueMember = "Model";
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
我想将[0],[1],[2]转换为b [0],将[3],[4],[5]转换为b [1]。所以我可以这样:
char a[6] = {49, 50, 54, 49, 49, 54}; // ASCII '1', '2', '6', '1', '1', '6'
char b[2];
我该怎么做?
答案 0 :(得分:5)
你可以这样做:
b[0] = (a[0] - '0') * 100 + (a[1] - '0') * 10 + (a[2] - '0');
,类似于b [1]。
请注意,如果a
中的字符不是数字,或者表示可以存储在char
范围之外的值,则结果将是未定义的。
答案 1 :(得分:2)
您似乎正在将十进制表示转换为字节。 sscanf
可以帮助您解决此问题,如下所示:
char a[6] = {49, 50, 54, 49, 49, 54};
signed char b[2];
sscanf(a, "%3hhi%3hhi", &b[0], &b[1]);