输出"烫烫烫烫烫烫烫烫烫烫烫烫"

来源:互联网 发布:spss19.0 统计软件 编辑:程序博客网 时间:2024/05/19 06:17
因为输出"烫烫烫烫"是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC
(打个比方,你定义一个10个元素的char数组,结果你初始化了2个元素,后面没初始化,没赋值,没有使用,就变CC了)。
CC CCH在Unicode的编码中就是表示中文的“烫”,所以就是很多“烫”字。
****************************************************************************************************
请lz在使用数组前,先把字符数组用‘\0’初始化!就行ok了!因为的字符串的长度是80.而可能你赋值的时候,没有达到80的长度!而且程序也不会自动帮你添加‘\0’。所以打印的时候,是整个数组全部打印出来的!也就出现了这些。。。烫烫烫烫烫烫。。。。的乱码!
#include<stdio.h>#include<string.h>char *jiami(char *str){char a[100]={'\0'};int key,i,j;printf("请确定加密秘钥:");scanf("%d",&key);for(i=0;str[i]!='\0';i++){if(str[i]>='A'&&str[i]<='Z'){a[i]=str[i]+key;(a[i]>'Z')?(a[i]=a[i]-26):(a[i]);}else if(str[i]>='a'&&str[i]<='z'){a[i]=str[i]+key;(a[i]>'z')?(a[i]=a[i]-26):(a[i]);}}//printf("%s",a);puts(a);return a;}main(){char string[100];printf("请输入原文:\n");gets(string);jiami(string);}