c - 不同程序中的相同阵列

标签 c string pointers

我真的是 C 的新手,目前我正在尝试从一个包含名称列表的文件中读入,并将其导入到一个数组中。当前数组是 char[][] 类型,因为它包含的信息不仅仅是名称,但本质上我希望 team[0][0] 成为我读入的名字,team[1][0] 到是第二个,等等。我很确定名称的实际导入是正确的,但我在存储这些数组时遇到了问题。

FILE *teamfile;
teamfile = fopen(file, "r");
char line[MAXLENGTH+1];
int i = 0;
while( fgets(line, sizeof line, teamfile) != NULL )
{
    trim_line(line);
    strcpy(&team[i][NAME],line);
    i++;        
}
fclose(teamfile);

从主函数调用的 teams = teamlist(argv[1], team); 但是当我尝试从我的程序中的其他地方引用数组时,例如 printf(&team[0][0]) 它输出的似乎是一个 block 中的所有名称...... 我做错了什么?

编辑:

static void trim_line(char line[])
{
    int i = 0;

//  LOOP UNTIL WE REACH THE END OF line
    while(line[i] != '\0')
    {

//  CHECK FOR CARRIAGE-RETURN OR NEWLINE
        if( line[i] == '\r' || line[i] == '\n' )
        {
            line[i] = '\0'; // overwrite with nul-byte
            break;          // leave the loop early
        }
        i = i+1;            // iterate through character array
    }
} 

感谢您到目前为止的帮助! :D

最佳答案

如果 team 声明为 char team[NUM_OF_TEAMS][LENGHT_OF_NAME]

那么它应该总是strcpy(&team[i],line);

提示:它是一个char数组,不是C中的“string object

关于c - 不同程序中的相同阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435320/

相关文章:

c# - 如何在C#中解码字符串

c++ - 指针和将 char 数组转换为 int

c++ - 在 C++ 中 reshape Matlab

c - cc26xx 上的 TI sha256 返回错误值

python - 如何将 str.replace() 与替换字典一起使用? Python

string - DateTime 对象和 YYYY-MM-DD 字符串之间的 MongoDB 区别

c - 避免在函数调用之间传递大数据

C 值数组,指针段错误

c - beej导流管实例讲解

c - c中char数组中的空格