问题遇到的现象和发生背景
用一个函数返回值与一个字符串相加,为什么每次重新输入后,字符串总是恢复原来的值,不能叠加在一起,请问各位师傅该怎么办?
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <string.h>
char* order_breakfast(char *a)
{
char *A1 ={"A1 HAM AND EGG 20\n"};
char *A2 ={"A2 BACON AND CHEESE 10\n"};
char *A3 ={"A3 TUMA SALAD 5\n"};
char *A4 ={"A4 BEEF SOUP 25\n"};
if (strcmp(a, "A1") == 0)
{
return A1;
}
else if (strcmp(a, "A2") == 0)
{
return A2;
}
else if (strcmp(a, "A3") == 0)
{
return A3;
}
else if (strcmp(a, "A4") == 0)
{
return A4;
}
else if (strcmp(a, "F") == 0 || strcmp(a, "C3") == 0 || strcmp(a, "C2") == 0 || strcmp(a, "C1") == 0 || strcmp(a, "B4") == 0 ||strcmp(a, "B3") == 0 || strcmp(a, "B2") == 0 || strcmp(a, "B1") == 0)
{
printf("This dish is not available\n");
}
else
{
printf("This dish code does not exist! Try again!\n");
}
}
int main()
{
char* i[100];
char p[2];
int a =0;
while(1)
{
scanf("%s", p);
if (strcmp(p, "F") == 0)
{
break;
}
strcat(i, order_breakfast(p));
}
printf("%s", i);
}
运行结果及报错内容
A1
A2
F
A2 BACON AND CHEESE 10
我的解答思路和尝试过的方法
该试的拼接函数都试过了,感觉不行
我想要达到的结果
能否将字符串多次拼接并储存,以便后续打印。