我正在尝试将字符串复制到字符串数组中的单元格。 我知道这是一个简单的问题,但我不明白为什么 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/