将字符串数组转换为带有 ascii 码的数组
Convert string array to array with ascii codes
我正在尝试将字符串的每个字符转换为其 ASCII 代码。字符串数组来自标准输入。
我正在尝试遍历字符串并使用 atoi() 将每个字符转换为 ASCII,并将此 ASCII 代码添加到新的 int 数组。
char s2[1024];
fgets(s2, 1024, stdin);
int arr[1024];
int i = 0;
while (i < strlen(s2))
{
char * start = s2;
int j = 0;
while(start != "[=10=]")
{
arr[j++] = atoi(start);
}
i++;
}
我是 C 的新手,我认为这可行,但是当我 运行 代码时,我得到了一个 "segmentation fault (core dumped)"。我知道这个错误与内存有关,但我不知道如何调试它。
您不需要转换任何东西,因为 s2
中的字符已经是 ASCII 值。
你可能想要这样的东西:
char s2[1024];
fgets(s2, 1024, stdin);
int arr[1024];
int i = 0;
while (i < strlen(s2))
{
arr[i] = s2[i];
i++;
}
如果您输入的是:
ABCD
arr
将包含以下值:{65, 66, 67, 68, x, x, x}
,其中 x
代表 "indetermined value"。
更好的循环版本:
for (int i = 0; i < strlen(s2); i++)
{
arr[i] = s2[i];
}
整体更好的版本:
#define MAXLINE 1024
char line[MAXLINE];
fgets(line, sizeof line, stdin);
int arr[MAXLINE];
for (int i = 0; i < strlen(s2); i++)
{
arr[i] = s2[i];
}
我正在尝试将字符串的每个字符转换为其 ASCII 代码。字符串数组来自标准输入。
我正在尝试遍历字符串并使用 atoi() 将每个字符转换为 ASCII,并将此 ASCII 代码添加到新的 int 数组。
char s2[1024];
fgets(s2, 1024, stdin);
int arr[1024];
int i = 0;
while (i < strlen(s2))
{
char * start = s2;
int j = 0;
while(start != "[=10=]")
{
arr[j++] = atoi(start);
}
i++;
}
我是 C 的新手,我认为这可行,但是当我 运行 代码时,我得到了一个 "segmentation fault (core dumped)"。我知道这个错误与内存有关,但我不知道如何调试它。
您不需要转换任何东西,因为 s2
中的字符已经是 ASCII 值。
你可能想要这样的东西:
char s2[1024];
fgets(s2, 1024, stdin);
int arr[1024];
int i = 0;
while (i < strlen(s2))
{
arr[i] = s2[i];
i++;
}
如果您输入的是:
ABCD
arr
将包含以下值:{65, 66, 67, 68, x, x, x}
,其中 x
代表 "indetermined value"。
更好的循环版本:
for (int i = 0; i < strlen(s2); i++)
{
arr[i] = s2[i];
}
整体更好的版本:
#define MAXLINE 1024
char line[MAXLINE];
fgets(line, sizeof line, stdin);
int arr[MAXLINE];
for (int i = 0; i < strlen(s2); i++)
{
arr[i] = s2[i];
}