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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效