【发布时间】:2012-08-26 15:26:57
【问题描述】:
我有一个arr[][] 形式的二维字符数组。我需要在该数组的末尾添加一个字符,有时在该数组的第 i 行或第 j 行的开头添加一个字符。这是代码sn-p:
arr[j] = strcat(arr[j],")");
arr[i] = strcat("(",arr[i]);
当我编译代码时,我收到错误:赋值中的类型不兼容。现在我假设arr[j] 和arr[i] 是字符串。我哪里错了?换句话说,在字符串开头追加或添加字符的最佳做法是什么?
【问题讨论】:
-
你必须注意
char *arr[](案例1)和char arr[][](案例2)在C语言中是两个不同的东西。在第一种情况下(&对于你的第一种情况) ,连接将发生在arr[final_position][final_position]的末尾,但在这里的第二种情况下,它将发生在arr[j][final_position]的末尾。在这里,在案例 1 中,它是一个指针数组,在案例 2 中,它是一个二维数组。因此,在情况 2 中,字符串连续性将在('\0'出现)最后结束,因为分配的内存对于二维数组中的所有字符串都是连续的。
标签: c string strcat incompatibletypeerror