我想要实现的是一个C程序,每次用户输入如下名称时都会存储名称:
FUNC1: 阅读:约翰
FUNC2 打印约翰
FUNC1: 阅读:michael
FUNC2 打印:约翰 打印:michael
我想知道如何在2个函数中执行此操作而不是单个函数。
void read(void)
{
int i;
char read[100];
// char * msg = (char *) malloc(sizeof(msg));
//i want to read 5 messages from user
for (i=0;i<5;i++)
{
scanf("%s",&read);
//i want to copy the message read into a variable msg,
//i dont know why i am doing this
//strcpy(msg,read);
//i want to call the store funcion
store(read);
}
}
int store(char *stock)
{
printf("saving.....stored\n");
char share[5][10]; //this is my 2d array to hold 5
//messages/names of 10 chars long
int i=0;
char * savedmsg = (char *) malloc(sizeof(savedmsg));
strcpy(share[i],stock);
printf("%s\n",share[i]);
i++;
printf("%s\n", share[1]);
}
我本周开始学习C,但我认为我得到的错误是func2不断重新初始化i=0;
我希望它增加i++;
所以func2会在2d内覆盖第一个索引阵列。
感谢您将来的帮助。
答案 0 :(得分:0)
而不是使用
int i=0;
将此声明为static
:
static int i=0;
在函数调用期间保存i
的值。