问题描述
我写了这个程序是为了帮助别人和作为学习练习,但是现在我对为什么奇怪的增加感到困惑。非常感谢帮助
#include <stdio.h>
#include <ctype.h>
typedef struct
{
char str[1000];
} arrType;
typedef struct
{
char *str;
} ptrType;
ptrType message = {"start"};
int main()
{
int choice;
int i;
char temp;
char begmessage[1000];
char endmessage[1000];
printf("Would you like to (1) encrypt or (2) decrypt?: ");
scanf("%i",&choice);
scanf("%c",&temp); // temp statement to clear buffer
printf("You chose: %d\n",choice);
printf("Type your message: ");
scanf("%[^\n]",begmessage);
ptrType message = {begmessage};
printf("\nThe message you typed is %s \n",message.str);
if (choice == 1)
{
for (i = 0; (i < 1000 && message.str[i] != '\0');)
{
if (isalnum(message.str[i]))
{
endmessage[i] = putchar((message.str[i] + 1));
i +=1;
}
else
{
endmessage[i] = putchar((message.str[i])); i +=1;
}
}
printf("\nYour message is Now: %s\n",endmessage);
}
if (choice == 2) {
for (i = 0; (i < 1000 && message.str[i] != '\0');)
{
if (isalnum(message.str[i]))
{
endmessage[i] = putchar((message.str[i] - 1));
i +=1;
}
else
{
endmessage[i] = putchar((message.str[i])); i +=1;
}
}
printf("\nYour message is Now: %s\n",endmessage);
}
}
以下是输出:
您要(1)加密还是(2)解密?:1您选择了:1类型 您的讯息:高塔
您键入的消息是High Tower Ijhi Upxfs您的消息现在是: Ijhi Upxfss。
您要(1)加密还是(2)解密?:2您选择了:2类型 您的消息:Ijhi Upxfs
您键入的消息是Ijhi Upxfs High Tower您的消息是: 高塔。
这行“高塔”来自哪里? 在最后一行,``����''来自哪里。我在stackoverflow和互联网上进行了搜索,但是符号``无法识别...
再次运行该程序并获得类似结果:
您要(1)加密还是(2)解密?:1 您选择了:1 输入您的信息:高塔
您键入的消息是High Tower Ijhi Upxfs您的消息现在是: Ijhi Upxfs。;
您要(1)加密还是(2)解密?:2您选择了:2类型 您的消息:Ijhi Upxfs
您键入的消息是Ijhi Upxfs High Tower您的消息是: 高塔@
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)