本文目录一览:
C语言如何读取TXT中的中文字符串
#include stdio.h
int main(void)
{
FILE *p;
char ch;
p = fopen("a.txt", "r");
while(!feof(p))
{
if(fgetc(p) == '')
{
while((ch = fgetc(p)) != '')
{
putchar(ch);
}
printf("\n");
}
}
fclose(p);
return 0;
}
//昨天我说了没编译估计会出错,这次没事了运行通过
//还有只能读英文,乔丹不行,这是因为c编译器不支持unicode编码,char类型的是只能表示128个字符,Unicode 是两个字节,可以表示汉字。
c语言 如何读取中文字符串
可以使用输入输出重定向来将TXT文本中的字符内容导入程序中,或者使用标准C库函数:fopen()和fgetc();
先使用fopen()函数打开TXT文本文件,然后使用fgetc读取文本文件中的字符。读取全部文本中全部字符可以使用一个while循环加判断是否读取到文件结尾来实现:
char ch;
while((ch= fgetc(fp)) != EOF)
这样当读取到文件结尾时,while循环就会终止。
C语文编写编译如下:
#include stdio.h
#include stdlib.h
#include string.h
#define MAXLINE 100000
#define BUFLEN 1024
int main()
{
FILE *file;
char buf[BUFLEN];
int len=0,i=0;
char *array[MAXLINE];
file=fopen("test.txt","r");//打开TXST.TxT文件
if(!file)return -1;
while(fgets(buf,BUFLEN,file))//读取TXT中字符
{
len=strlen(buf);
array[i]=(char*)malloc(len+1);
if(!array[i])break;
strcpy(array[i++],buf);
}
fclose(file);
i--;
while(i=0array[i])
{
printf("%s\n",array[i]);//打印test文档的字符
free(array[i--]);
}
}
C语言怎么从字符串中取出中文字符?
这个需要具体看编译器中汉字的编码情况,汉字编码是2至4个字节,我是手机编译器,汉字编码是3个字节,参考代码如下:
#includestdio.h
char *str = "你好123哈哈456";
int main()
{
int i;
for(i=0;str[i]!=0;++i)
if(str[i]127){
printf("%c%c%c\n",str[i],str[i+1],str[i+2]);
i+=3-1;
}
else printf("%c\n",str[i]);
return 0;
}