如何从2d数组到1d数组strcat 1个字符

时间:2015-11-23 02:56:14

标签: c arrays string

基本上我正试图将二维数组中的字母转换为一维数组。我已经有了这个用户输入的字母网格,从这些字母中我将它们逐个字母组合成一个数组,然后根据字典检查它是否有效。

我一直在尝试像

这样的东西
strcat(wordTester, board[i][j]);

但我不断收到运行时错误。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

strcat()用于连接以null结尾的字符串,因此将字符传递给它会导致压缩,因为该字符可能会转换为无效指针。

尝试使用此功能:

#include <string.h>
char* charcat(char *target, char c) {
    size_t len;
    if (target != NULL) {
        len = strlen(target);
        target[len] = c;
        target[len + 1] = '\0';
    }
    return target;
}

用法(假设char wordTester[MAX]; char board[M][N];正确定义了MAXMN

charcat(wordTester, board[i][j]);