中文大写逗号怎么在VS里表示

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:19:57
#include "stdio.h"
#include "string.h"
void main()
{
char a[100];
printf("请输入诗的内容\n");
gets(a);
char *p;
p=a;
size_t k=strlen(a);
printf("\n");
for(int i=0;i<k+2;i++)
{
printf("%c",*p++);
/*if(i==15 || i==31 || i==47 || i==63)*/ //每输出完一行换行
if(*p==','|| *p=='.')
{
printf("\n");
}
}
注释地方是我算出来诗的内容换行的,我想问下怎样在中文状态下输入诗的时候输入个,或者.可以输入一个换行 英文的可以 但是中文的不行啊 有办法吗

}
是在VS2005下 我把程序里改成中文的也不行

中文汉字(包括中文标点符号)都是占两个字节的。
所以,你比较的时候,要这样:
#include<stdio.h>
#include<string.h>

int main()
{
char a[100];
char *p=a;

printf("请输入诗的内容\n");
gets(a);
size_t k=strlen(a);

printf("\n");
for(int i=0;i<k;i++,p++)
{
printf("%c",*p);
if(((*(p-1)==(char)0xa3) && (*p==(char)0xac))//中文逗号
||((*(p-1)==(char)0xa1) && (*p==(char)0xa3))) //中文句号
{
printf("\n");
}
}
}

中文使用双字节编码
如果是GB码的话,那两个字节都是>128,而标准ASCII码都是<128 可以通过这个来判断是不是汉字
以及汉字是不是结束

你这个能输出中文吗?

如果能,把','和'.'换成','和'。'。

使用unicode编码方式编译运行应该可以,程序需要修改。