'这个是自动加上去的),因为你后面的处理都是同时处理这100个字符,须知,局部变量定义的时候"og:type" content="webpage">'这个是自动加上去的),因为你后面的处理都是同时处理这100个字符,须知,局部变量定义的时候" /> '这个是自动加上去的),因为你后面的处理都是同时处理这100个字符,须知,局部变量定义的时候"> 小弟编了一个小程序 但运行结果有乱码 请高手把乱码去掉 谢谢_软件运维_内存溢出

阅读 14

小弟编了一个小程序 但运行结果有乱码 请高手把乱码去掉 谢谢,第1张

输出乱码的原因是你定义的100个字符的数组s1(当你输入的个数等于100个字符的时候就没有问题(当然要考虑字符串结尾的字符'\0'这个是自动加上去的),因为你后面的处理都是同时处理这100个字符,须知,局部变量定义的时候是不会被初始化的,所以

这100个字符当输入的个数没有达到要求时,后面的字符就是随机性的,所以你输出的时候就出现乱码,解决问题的关键是虚和循环的退出条件,你原来应该是想输入一串字符串,是字母就+4,gets()取得一个差携盯字符串,字符串是以'\0'结尾的,所以你应隐陵该计算输入的字符串个数,可以用strlen()这个函数获得,对于后面没有输入字符不去处理就可以了,所以修改你的两个循环的退出条件为for(i=0i<strlen(s1)i++) ,就可以了,另外,输出的时候不用一个一个输出,可以直接输出字符串用printf("%s",s1)应该输入的gets()是读入一个字符串,会在后面自动加上'\0'所以可以这样输出.修改后的完整程序如下:

#include <stdio.h>

#include <string.h>

void main()

{

int i

char s1[100]

printf("input s1\n")

gets(s1)

for(i=0i<strlen(s1)i++)

if((s1[i]>='a'&&s1[i]<='z')||(s1[i]>='A'&&s1[i]<='Z'))

{

s1[i]=s1[i]+4

if(s1[i]>'Z'&&s1[i]<='Z'+4||s1[i]>'z') s1[i]=s1[i]-26

}

printf("%s",s1)//这个可以用你原先的,不过要控制输出个数.

}

请问这裤孝个是你自己做的程序呢?还是别人的胡李稿呢?

这种情况是语扰缓言不兼容,如果是自己做的,开发的时候坐下兼容性,如果是别人开发的基本上没办法

还有一种情况是你把系统语言改了,比如原来的中文,被你改成了英文,可以在控制面板里修改下


不是。微信(WeChat)是腾讯公司于2011年1月游卜慎21日推出的一个为智能终端提供即时通讯服务的免费应用程序,该软件中的小程序中文乱码是因为手机网络信号不佳导致的数据jav传输错误的原因所以是网络问题不是手机问题,该软件 *** 作简神敬单功弊春能齐全受到众多群众好评。

欢迎分享,转载请注明来源:

内存溢出

原文地址:

http://outofmemory.cn/yw/12561301.html
时候
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
攒机网 攒机网 一级用户组
请写出下面程序对应的C语言的源代码。
上一篇
2023-05-26
hbuilder怎么发现手持式pda
2023-05-26

发表评论
请登录后评论... 登录
提交

    评论列表(0条)
保存
{label} {label}