首页 > 电脑

输出时出现乱码

更新时间2019-06-11 04:47:41

#include<stdio.h>#include<stdlib.h>#include<string.h>void pai(char a[283][30]){int i,j;char *p,b[283];p=b;for(i=0;i<282;i++)    for(j=0;j<282-i;j++)    if(strcmp(a[j],a[j+1])>0)    {    strcpy(p,a[j]);    strcpy(a[j],a[+j+1]);    strcpy(a[j+1],p);    }}int main(){    char a[283][30],b[283][100];    int i=0,j;    FILE *fp;    if((fp=fopen("d:pinyin.txt","r"))==NULL)//打开文件    {        printf("Can not open file! ");        exit(1);    }    while(!feof(fp))//读取到文件尾    {        fscanf(fp,"%s",a[i]);        i++;    }for(i=0;i<283;i++)    strcpy(b[i],a[i]);for(i=0;i<283;i++)//加了这步之后出现了一些乱码     {    for(j=strlen(b[i]);j<30;j++)  b[i][j]=' ';  }// pai(a);for(i=0;i<283;i++)strcat(b[i],a[i]);for(i=0;i<283;i++)    {    printf("%s ",b[i]);    }return 0;}
输出时出现乱码

c语言字串必须以''结尾的,你在后面加空格后,要重设结束标记的

 for(j=strlen(b[i]); j<30; j++)  

              b[i][j]=' ';     // pai(a);

///这里加

b[i][30]='';

b[i][j]=''; //j就是30


上一篇:vivoz5x返回键在哪里

下一篇:既没显示基于x86也没显示基于x64可以转64吗