鱼C论坛

 找回密码
 立即注册
查看: 2925|回复: 5

作业《指针和数组》动动手第1题答案有问题

[复制链接]
发表于 2021-11-3 18:59:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
带你学c带你飞   指针和数组课后作业 动动手第1题,答案错了吗
我输入的是取2个字符,结果。。。(中文字符)
反正就是中文字符会多截取一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-3 19:07:33 | 显示全部楼层
中文字符是宽字符wchar(一般占2个字节)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-3 19:11:07 | 显示全部楼层
傻眼貓咪 发表于 2021-11-3 19:07
中文字符是宽字符wchar(一般占2个字节)

可是答案没有正确截取呀,我也不知道怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-3 19:58:08 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-3 20:00 编辑

       中文字符在 Windows 下缺省使用 "GBK" 编码,每个汉字占用 2 个字节,在 Linux 系统下缺省使用 "UTF-8" 编码,每个汉字占用 3 个字节,明白了这些,有助于搞清楚问题所在。
       最好能贴出你的 C 代码,并给出输入、输出的样例,这样,大家可以帮助你分析问题所在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-3 23:04:06 | 显示全部楼层
#include <stdio.h>

#define MAX 1024

int main()
{
        char str1[MAX];
        char str2[MAX];

        char *target1 = str1;
        char *target2 = str2;

        char ch;
        int n;

        printf("请输入一个字符串到 str1 中:");
        fgets(str1, MAX, stdin);

        printf("请输入需要拷贝的字符个数:");
        scanf("%d", &n);

        printf("开始拷贝 str1 的内容到 str2 中...\n");
        while (n--)
        {
               ch = *target2++ = *target1++;
               if (ch == '\0')
               {
                       break;
               }
               if ((int)ch < 0)
               {
                       *target2++ = *target1++;
                       *target2++ = *target1++;
               }
        }

        *target2 = '\0';

        printf("拷贝完毕!\n");
        printf("现在,str2 中的内容是:%s\n", str2);

        return 0;
}
这是代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-3 23:16:40 | 显示全部楼层
jackz007 发表于 2021-11-3 19:58
中文字符在 Windows 下缺省使用 "GBK" 编码,每个汉字占用 2 个字节,在 Linux 系统下缺省使用 "UTF ...

我已经懂了,小甲鱼用的linux而我是wendous,所以它多加了*target2++ = *target1++;;;;
谢谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-28 02:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表