该程序应该通过从它们的 ascii 值中减去 97 将字符数组(字符串)转换为整数数组(输入应该是小写,因为 a 的 ascii 值为 97)。因此,如果我输入字符串 abcd,我应该得到 0123,但我却以某种方式得到:012134513789。我不知道问题出在哪里。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
void userEnter(int*pattern, int n);
int main(void)
{
int n, i;
printf("What is the length of the array: ");
scanf("%d",&n);
int pattern[n];
printf("Enter the char array: ");
userEnter(pattern, n);
printf("The int array is: ");
for(i=0;i<n;i++)
{
printf("%d",pattern[i]);
}
printf("\n");
}
void userEnter(int*pattern, int n)
{
char input[n];
scanf("%s", input);
int i;
for(i = 0; i < n-1; i++)
{
pattern[i] = input[i]-97;
}
}