[英]C - How do I attach ASCII-Code to char array
我必须从许多字符串/ ASCII代码中制成一个char数组。 虽然添加字符串可以正常工作,但添加ASCII码则不能。
char line[50];
strcat(line, " "); // works
for (int i = 0; i < 29; i++) strcat(line, '196'); // supposed to add lines
for (int i = 0; i < 29; i++) strcat(line, 196);
这些都不起作用。 我总是收到此错误消息(必须进行翻译)。
test.exe中0x00E620E7处的异常:0xC0000005:读取位置0x00313936时发生访问冲突。
我想念什么? 谢谢你的帮助
如果您知道ascii代码,为什么不直接编写呢?
line[i] = 196;
这样行吗?
在C中,字符串写在双引号之间。 示例"abc"
是字符串。
假设要向strcat()
传递指向字符串的dst和str指针。
在第2行中,您正确使用了strcat()
。 line是指向char数组的指针, " "
是指向字符串文字的指针。
但是在第3行中, '196'
不是字符串。 如果要在字符串中写入196,则应为strcat(line, "196");
第4行也是如此。
请注意以下事项。
char line[50] = ""
; for(..,i < MAX-1,..) line[i]=196; line[i+1]='\\0';
for(..,i < MAX-1,..) line[i]=196; line[i+1]='\\0';
或for(..,i < MAX-1,..) strcat(line, "_"/* Assuming this is the character for 196*/);
196
是一个char
(或int
),而不是字符串,并且它不是strcat
的有效参数(这意味着“字符串串联”)。 '196'
根本无效,也不会编译。
字符串是以'\\0'
结尾的char 序列 。 如果要追加单个字符,则必须手动处理(直接分配,例如line[i] = 196;
),或者必须使用带有两个字符的_dummy helper string_,例如: char dummy[2]; dummy[0] = 196; dummy[1] = '\\0';
char dummy[2]; dummy[0] = 196; dummy[1] = '\\0';
然后strcat(line,dummy);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.