Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 字符串约束\u错误长度检查失败_String_Ada_Constraintexception - Fatal编程技术网

String 字符串约束\u错误长度检查失败

String 字符串约束\u错误长度检查失败,string,ada,constraintexception,String,Ada,Constraintexception,我有一个数组,其中包含最多20个字符的字符串: subtype c_string is string(1..20); type string_array is array (natural range 1..100) of c_string; 当我尝试将字符串分配到字符串数组的某个位置时,如果字符串长度不正好为20个字符,则会出现以下错误: 引发约束_错误:(…)长度检查失败 这是导致问题的代码行: str_a: string_array; (....) str_a(n) := "string

我有一个数组,其中包含最多20个字符的字符串:

subtype c_string is string(1..20);
type string_array is array (natural range 1..100) of c_string;
当我尝试将字符串分配到字符串数组的某个位置时,如果字符串长度不正好为20个字符,则会出现以下错误:

引发约束_错误:(…)长度检查失败

这是导致问题的代码行:

str_a: string_array;
(....)
str_a(n) := "stringToAssign"        --Causes error

避免这种情况的最佳方法是什么?

您的
c_字符串
最多不能容纳20个字符;它正好包含20个字符,因此是CE

如果有一个上限很重要,或者你实际上不在乎,你可以使用

在有界的情况下,可能是这样的

package B_Strings is new Ada.Strings.Bounded.Generic_Bounded_Length (Max => 20);
type String_Array is array (1 .. 200) of B_Strings.Bounded_String;
然后

Str_A : String_Array;
Str_A (N) := B_Strings.To_Bounded_String (“stringToAssign”);

您的
c\u字符串
最多不能容纳20个字符,其中还有更多内容;它正好包含20个字符,因此是CE

如果有一个上限很重要,或者你实际上不在乎,你可以使用

在有界的情况下,可能是这样的

package B_Strings is new Ada.Strings.Bounded.Generic_Bounded_Length (Max => 20);
type String_Array is array (1 .. 200) of B_Strings.Bounded_String;
然后

Str_A : String_Array;
Str_A (N) := B_Strings.To_Bounded_String (“stringToAssign”);

还有更多信息。

谢谢。如何将有界字符串转换回普通字符串?我想我得到了答案:B_Strings.to_string(有界字符串)。如果我错了,请纠正我。我推荐参考手册讲座-附录A详细介绍了标准库。
To_String()
确实是将有界字符串转换为普通
字符串的方法。谢谢。如何将有界字符串转换回普通字符串?我想我得到了答案:B_Strings.to_string(有界字符串)。如果我错了,请纠正我。我推荐参考手册讲座-附录A详细介绍了标准库。
To_String()
确实是将有界字符串转换为普通
字符串的方法。