gpt4 book ai didi

c - 简单 C 程序中的 ASCII 字符困惑

转载 作者:行者123 更新时间:2023-11-30 15:26:27 25 4
gpt4 key购买 nike

我已经为作业编写了这个简单的程序,但是当我输入文本时,输出给我的是符号而不是字符。任何帮助,将不胜感激。我不知道为什么我的输出会这样,但程序似乎编译得很好。也许它正在工作,我需要做一个基本的数学测试,看看它是否正常工作。无论如何,如果有人发现其中的错误,我们非常感谢您提供反馈。

#include <stdio.h>
#include <cs50.h>
#include <stdlib.h>
#include <ctype.h>

string Crypto(string, int); // rotation


int main(int argc, string argv[])
{
int k = 0;
// error checing
if (argc == 0 || argc == 1 || argc > 2)
{
// get mad
printf("Enter 1 integer as an argument. Stop messing around!\n Try Again: ");
return 1;
}
else
{
//create command line arguments to be stored into k
k = atoi(argv[1]);
k = k * 1;
}

// Get text to be encrypted
printf("Enter the text you want to encrypt: \n");
string a = GetString();

string b = Crypto(a, k);
printf("%s\n", b);

return 0;
}

//Now let's get cryptic
string
Crypto(string a, int k)
{
int c = 0;
for (int i = 0, n = strlen(a); i < n; i++)
{
if(a[i] >= 65 && a[i] <= 90)
{
c = ((26 - (91 - a[i] + k) % 26));
a[i] = c + 'A';
}
else
{
c = ((26 - (123 - a[i] + k % 26)));
a[i] = c + 'a';
}
}
return a;
}

最佳答案

在函数Crypto中,您需要附加一个\0(空)字符来表示字符串的结尾。在 return a; 之前,编写 a[i+1] = '\0'; 语句。

关于c - 简单 C 程序中的 ASCII 字符困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com