gpt4 book ai didi

c++ - 字符数组快速转换为ASCII键值的方法

转载 作者:行者123 更新时间:2023-11-28 02:10:55 25 4
gpt4 key购买 nike

我正在编写一个程序,它从一个由 a-z 和数字 0 组成的文件中按序列读取大量字符。示例如下所示:

a0dgiw00cffn0ai0cbiwa0...

我相信我用这个将这个序列转换为字符数组:

strncpy(array, string.c_str(), sizeof(array));

现在我有一个应该如下所示的数组:

[a][0][d][g][i][w][0][0]...

所以我的问题是,将字符数组中的所有值转换为 ASCII 键值的最有效方法是什么?最有效的尽可能少的时间。如果您不明白我所说的“ASCII 键值”是什么意思,最终的数组应该如下所示:

[97][48][100][103][105][119][48][48]...

旁注:可以找到 ASCII 键值表 here .

旁注:我已经知道如何将数组值转换为 ASCII,我只是在寻找一种更快的方法。

提前谢谢你。

最佳答案

假设关于您的语言环境的一堆事情,它已经存储为“引擎盖下”的 ASCII 字符,如二进制中的 'a'==97 作为 char(或您的编译器/系统使用的任何内容)。要让您的系统将 'a' 视为整数值而不是字符,您只需执行 (int)'a',并将字符串的任何部分视为 (int)数组[索引]

#include <iostream>
#include <string>

int main() {
using namespace std;
string sample = "abcdefghijklmnopqrstuvwxyz";
for(char c : sample) {
// NOTE: cast to (int) doesn't change value of 'c'.
cout << c << '=' << (int)c << endl;
}
return 0;
}

输出:

a=97
b=98
c=99
d=100
e=101
f=102
g=103
h=104
i=105
j=106
k=107
l=108
m=109
n=110
o=111
p=112
q=113
r=114
s=115
t=116
u=117
v=118
w=119
x=120
y=121
z=122

关于c++ - 字符数组快速转换为ASCII键值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com