c - C 初学者,字符串数组

标签 c arrays string pointers

我正在尝试将字符串复制到字符串数组中的单元格。 我知道这是一个简单的问题,但我不明白为什么 strcpy 只复制第一个字符。

请向初学者解释一下:)

像这样的白痴:

#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH     10
#define MAX_INPUTS  3


void func(char array[MAX_INPUTS][MAX_LINE_LENGTH])
{
    char line[MAX_LINE_LENGTH];
    fgets(line, MAX_LINE_LENGTH, stdin);
    strcpy(array[0], line);
}


int main(int argc, char *argv[])
{
    char lines[MAX_INPUTS][MAX_LINE_LENGTH];
    func(lines);
    return 0;
}

最佳答案

你的代码对我有用(我做了微小的调整):

$ cat test.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 10
#define MAX_INPUTS 3

void func(char array[MAX_INPUTS][MAX_LINE_LENGTH]){
    char line[MAX_LINE_LENGTH];
    fgets(line, MAX_LINE_LENGTH, stdin);
    strcpy(array[0], line);
}

/* no need to use main args in this case */
int main(void){
    char lines[MAX_INPUTS][MAX_LINE_LENGTH];
    func(lines);
    printf("str=%s\n", lines[0]);
    return EXIT_SUCCESS;
}
$ gcc test.c -Wall -Wextra
$ ./a.out
something
str=something

也许是您的打印错误(格式错误等)?

关于c - C 初学者,字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327296/

相关文章:

java - 选择随机数以选择数组索引时应用程序崩溃

c++ - 如何在 Qt 中制作图像数组?

string - Lua 使用 string.gsub 进行多个字符串替换

C++ - 按字母顺序排列字符串

objective-c - 为什么 typedef 与枚举类型一起使用?

c - 没有任何内容写入文件

arrays - 零一矩阵中零范围的索引

java - 如何在没有数组的情况下对字符串进行排序(无论大小写)

c - 帮助反转 C 中的字符串

c++ - 为什么在进行 int/unsigned int 除法时使用 'divl'