充电中_678 2023-11-23 22:08 采纳率: 66.7%
浏览 9
已结题

字符串数组应该怎么传参

字符串数组应该怎么传参?

img

为什么我的代码中函数judge1,2,3中printf("%s",nums[i]);输出结果是乱码

  • 写回答

2条回答 默认 最新

  • 是Yu欸 Python领域新星创作者 2023-11-23 23:46
    关注

    在你的代码中,字符串数组 nums 是一个数组指针(char**),并且你为每个字符串分配了内存空间。然而,在代码中存在一些问题,可能导致输出乱码的情况。

    首先,你提到 printf("%s",nums[i]); 输出乱码。这可能是因为字符串没有正确以 null 结尾,或者字符串中包含了无法正确解释的字符。请确保你输入的字符串以 null 结尾,这是 C 语言中字符串的约定。

    另外,你在循环中使用 scanf("%s",nums[i]); 来读取字符串,这可能会导致缓冲区溢出问题。建议使用 fgets 函数来读取字符串,以确保不会溢出缓冲区。示例代码如下:

    for(i = 0; i < n; i++) {
        fgets(nums[i], 5, stdin); // 使用fgets来读取字符串
        score[i] = 0; // 初始化 score
    }
    

    上述代码使用 fgets 函数来读取字符串,第二个参数指定了字符串的最大长度(包括 null 结尾字符)。然后,你可以使用 printf 来输出这些字符串,应该不会再出现乱码问题。

    最后,请确保你的输入数据格式正确,字符串以 null 结尾,并且在 judge1judge2judge3judge4 函数中的逻辑正确,不会导致乱码输出。如果问题仍然存在,欢迎进一步交流。

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

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 已采纳回答 11月28日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,