标题:帮忙看看为什么会乱码呢
只看楼主
hudada
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-5-9
结帖率:50%
已结贴  问题点数:5 回复次数:6 
帮忙看看为什么会乱码呢
#include <stdio.h>
#include <windows.h>
main()
{
   char str[400]="社会主义核心价值观:富强 民主 文明 和谐 自由 平等 公正 法治 爱国 敬业 诚信 友善";
   int i,j;   
   while(1)
   for(i=0;i<strlen(str);i++)
   {
     system("cls");
       for(j=i;j<strlen(str);j++)
       {
          printf("%c",str[j]);
       }
       Sleep(100);
       printf("\n");
   }
}
搜索更多相关主题的帖子: 乱码 include str for strlen 
2018-05-20 13:03
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:5 
汉字占两个字符
#include <stdio.h>
#include <windows.h>
main()
{
   char str[400]="社会主义核心价值观:富强 民主 文明 和谐 自由 平等 公正 法治 爱国 敬业 诚信 友善";
   int i,j;
   while(1)   
   for(i=0;i<strlen(str);)
   {
     
     system("cls");
       for(j=i;j<strlen(str);)
       {
          if(str[j]==' ')
          {
              printf(" ");j++;
          }
          else
          {
              printf("%c%c",str[j],str[j+1]);j+=2;
          }
         
       }
       if(str[i]==' ')i++;
       else i+=2;
       Sleep(300);
       printf("\n");
   }
}
2018-05-20 17:10
hudada
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-5-9
得分:0 
回复 2楼 ehszt
这样改了以后,后面的程序可以给我解释一下吗
2018-05-20 18:41
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:0 
回复 3楼 hudada
j遇到空格输出空格跳一位,遇到汉字,输出汉字跳过两位
i遇到空格跳过一位,遇到非空格(汉字),跳过两位
就这样
2018-05-20 19:10
hudada
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-5-9
得分:0 
回复 4楼 ehszt
作为刚入门的大白菜真是太感谢您啦
2018-05-21 02:00
hudada
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-5-9
得分:0 
回复 4楼 ehszt
printf("%c%c",str[j],str[j+1]);
              j+=2;
为什么这一步要输出两个字符呢
2018-05-21 11:37
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:0 
一个汉字占两个字符,,输出一个字符其实只输出了"半个汉字"所以就是乱码。
2018-05-21 12:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487093-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.703030 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved