我应该创建一个固定大小的数组(比方说5x5)。我应该用键入作为命令行参数的单词来填充它。我只能使用指针。显然,我必须创建二维数组[5] [5]。我不能使用超过25个字母(我会写if语句)。我将用某些符号($或其他符号)替换空白。问题是我不知道如何仅使用指针将这些命令行参数与数组连接。
答案 0 :(得分:0)
您需要使用主函数中的argc和argv参数。
这里是一个例子。
#include <stdio.h>
int main(int argc, char *argv[])
{
for (unsigned i = 1; i < argc; i++)
{
printf("Word %u is: %s\n", i, argv[i]);
}
return 0;
}
您使用gcc main.c -o a.exe
对其进行编译。
并使用a.exe hello world
运行它。
编辑:
进一步评论。
您可以像这样创建一个指针数组:
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char *my_array_of_strings[5]; // up to 5 strings
// populate your array
for (unsigned i = 1; i < argc; i++)
{
my_array_of_strings[i - 1] = malloc(strlen(argv[i]) + 1);
if (NULL == my_array_of_strings[i - 1])
{
printf("oh no, memory failure");
break;
}
memcpy(my_array_of_strings[i - 1], argv[i], strlen(argv[i]) + 1);
printf("word is %s\n", my_array_of_strings[i - 1]);
}
return 0;
}