在Pascal编程语言中,我编写了以下代码
Program practice;
//**** Function to get back N characters from a P position from a given string
Function get_char(s1:String;n,p :Integer): String;
Var
temp : String;
i : Integer;
Begin
temp:= s1[p];
For i:= p+1 To p+n-1 Do
temp := temp + s1[i];
get_char := temp;
End;
//**** end of the function *****
Var
s1,s2: String;
n,p: Integer;
Begin
Write('Enter the number of char:');
readln(n);
write('Enter the position:' );
readln(p);
write('Enter the string : ');
readln(s1);
write(get_char(s1,n,p));
Readkey;
End.
知道此函数从字符串的某个位置取回用户给定的一定数量的字符。例如p = 1且n = 2的'hello',结果将是'he'。现在假设p为3且n = 4,则函数的输出为'lloA'。所以我的问题是在这种情况下会发生什么,或者为什么我们会得到这样的结果? (如果它与内存有关,请给我详细信息。)>
我使用Pascal编程语言编写了以下代码编程实践; // ****从给定字符串的P位置取回N个字符的函数get_char(s1:String; n,p:...
当您读取字符串末尾以外的字符时,您将读取恰好位于这些内存位置的内存内容,并将该内存内容解释为字符。超出字符串长度的内存内容未定义,也无法预测。