ssyhw8 2022-10-27 13:55 采纳率: 50%
浏览 28
已结题

用一个函数返回值与一个字符串相加,为什么每次重新输入后,字符串总是恢复原来的值

问题遇到的现象和发生背景

用一个函数返回值与一个字符串相加,为什么每次重新输入后,字符串总是恢复原来的值,不能叠加在一起,请问各位师傅该怎么办?

用代码块功能插入代码,请勿粘贴截图

#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

我的解答思路和尝试过的方法

该试的拼接函数都试过了,感觉不行

我想要达到的结果

能否将字符串多次拼接并储存,以便后续打印。

  • 写回答

2条回答 默认 最新

  • 於黾 2022-10-27 14:02
    关注

    你的字符串在函数里定义的,每次都重新初始化了呀
    定义成全局变量,或者在main里定义

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 修改了问题 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭