linux 中文字符输出
在做sle22课后题时,输入中文字符到字符数组,怎么输出是的都是问号。 sle22课后题时 是什么???????你代码是什么???????????
ba21 发表于 2020-4-4 23:14
sle22课后题时 是什么???????
你代码是什么???????????
我的代码和输出都在附件里。做的是sle22 动动手第二个-拷贝字符串。 代码输入中文字符串到a,拷贝到字符串b, 但是输出是问号,输出不了中文。 18515289503 发表于 2020-4-5 21:04
我的代码和输出都在附件里。做的是sle22 动动手第二个-拷贝字符串。 代码输入中文字符串到a,拷贝到字符 ...
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char a={'\0'}, b={'\0'};
char *pa=a, *pb=b;
int c;
char ch;
int chsLen;
// 判断当前系统环境中文编码点用字节数
printf("当前环境中文编码占字节数为:%d\n", sizeof("财")-1); // -1 减\0
printf("输入:");
fgets(a, 30, stdin);
printf("复制数量:");
scanf("%d", &c);
while(c--)
{
ch=*pb++=*pa++;
if(ch=='\0')
break;
// 根据中文编码内存占用大小,再次复制剩佘字节
if((int)ch<0)
{
chsLen=sizeof("财")-1;
while(--chsLen)
{
*pb++=*pa++;
}
}
}
*pb='\0';
printf("结果:%s\n", b);
}
ba21 发表于 2020-4-5 22:40
多谢,我再问一下问题,你的代码我再gcc上编译出现了错误,见下图:
我找了下usr/include 文件夹,里面有stblib.h文件,问什么还会出现错误? 18515289503 发表于 2020-4-7 14:04
多谢,我再问一下问题,你的代码我再gcc上编译出现了错误,见下图:
我找了下usr/include 文件夹,里面 ...
stlib.h ?
怎么能如此的不认真?
人造人 发表于 2020-4-7 14:08
stlib.h ?
怎么能如此的不认真?
stlib.h是编译后系统出现的 18515289503 发表于 2020-4-7 15:57
stlib.h是编译后系统出现的
把Ch.c的内容贴出来
Ch.c 用的就是楼上答案的代码,一模一样的。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char a={'\0'}, b={'\0'};
char *pa=a, *pb=b;
int c;
char ch;
int chsLen;
// 判断当前系统环境中文编码点用字节数
printf("当前环境中文编码占字节数为:%d\n", sizeof("财")-1); // -1 减\0
printf("输入:");
fgets(a, 30, stdin);
printf("复制数量:");
scanf("%d", &c);
while(c--)
{
ch=*pb++=*pa++;
if(ch=='\0')
break;
// 根据中文编码内存占用大小,再次复制剩佘字节
if((int)ch<0)
{
chsLen=sizeof("财")-1;
while(--chsLen)
{
*pb++=*pa++;
}
}
}
*pb='\0';
printf("结果:%s\n", b);
}
页:
[1]