1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言输出字符数组出现汉字乱码解决方法

c语言输出字符数组出现汉字乱码解决方法

时间:2019-06-24 02:51:02

相关推荐

c语言输出字符数组出现汉字乱码解决方法

最近在完成数据结构作业,在代码过程中经常遇到一些小问题,比如在输出字符串数组时,在一串自己想要的字符后面经常会出现一些不知名的汉字乱码。

(这段代码是去除字符数组里面重复数组元素)

#include "header.h"extern int CountLength(char name[],int len);int DealArray(char num[]){printf("你输入的逻辑表达式的操作数(去除重复操作数):");int v=0;int g=CountLength(num,v);int i,j,k,L;for(i=0;i<g;i++) //冒泡循环{for(j=i+1;j<g;j++){if(num[j]==num[i]) //如果发现重复{for(k=j+1;k<g;k++){num[k-1]=num[k]; //将后面的数依次赋值给前一个位置}g--; //数组长度-1j--; //重复点再次进行查重}}}for(L=0;L<g;L++){printf("%c",num[L]);}printf("\n");return OK;}int main(){char n[]={'B','B','B','B','D','E'};DealArray(n);}

运行结果:

你输入的逻辑表达式的操作数(去除重复操作数):BDE虁

解决方法是在数组后面加一个'\0',数组结束符号

如果是在测试的话,在你自己输入的数组后面加一个'\0'数组元素

int main(){char n[]={'B','B','B','B','D','E','\0'};DealArray(n);}

如果是用for循环为数组赋值的话,记得在for循环结束后,为最后一个数组元素赋值'\0'

for(i=0;i<g;i++) //冒泡循环{for(j=i+1;j<g;j++){if(num[j]==num[i]) //如果发现重复{for(k=j+1;k<g;k++){num[k-1]=num[k]; //将后面的数依次赋值给前一个位置}g--; //数组长度-1j--; //重复点再次进行查重}}}num[g]='\0';

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。