#include
void change(char *str)
{
char *p=str;
while (*p!='\0')
{
if (isupper(*p)) *p='A'+((*p+4)-'A')% 26;
else *p='a'+((*p+4)-'a')% 26;
p++;
}
}
void insert (char *str1,char *str2)
{
char *p=str1;
char *q=str2;
while(*p!='0')
{
*q=*p;
q++;
*q=' ';
p++;
q++;
}
*q=*p;
}
int main()
{
char str[255],str1[255];
while (gets(str))
{
change (str);
insert (str,str1);
printf("%s\n",str1);
}
}
请问一下,为什么无法输出结果
回答:你的程序略微有些小问题,我给你修改了一下
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void change(char* str)
{
int length = strlen(str);
for (int i = 0; i < length; i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
{
if (str[i] + 4 > 'z')
{
str[i] = str[i] + 3 - 'z' + 'a';
}
else
{
str[i] = str[i] + 4;
}
}
else if (str[i] >= 'A' && str[i] <= 'Z')
{
if (str[i] + 4 > 'Z')
{
str[i] = str[i] + 3 - 'Z' + 'A';
}
else
{
str[i] = str[i] + 4;
}
}
}
//printf("%s\n", str);
}
void insert(char* str1, char* str2)
{
int length = strlen(str1);
for (int i = 0; i < length; i++)
{
str2[2 * i] = str1[i];
str2[2 * i + 1] = ' ';
}
}
int main()
{
char str[128] = {};
while (scanf_s("%s", str, 128))
{
change(str);
char str1[255] = {};
insert(str, str1);
printf("%s\n", str1);
}
}
/*
Rainisfaillingallaround
wZxabY
*/