我不知道';当使用带有头文件的if语句时,我得不到应该得到的输出。[C语言编程] 无效测试(字符文本[],字符测试密码[],int*längd,int*nyckel) { int i=0; int j=0; 而(文本[i]!='\0') { i++; } *längd=i-1; 而(文本[j]!='\0') { 如果(text[j]>='a'&&text[j]在这之后什么都没有发生,我可以输入无限个字母

我不知道';当使用带有头文件的if语句时,我得不到应该得到的输出。[C语言编程] 无效测试(字符文本[],字符测试密码[],int*längd,int*nyckel) { int i=0; int j=0; 而(文本[i]!='\0') { i++; } *längd=i-1; 而(文本[j]!='\0') { 如果(text[j]>='a'&&text[j]在这之后什么都没有发生,我可以输入无限个字母,c,C,您将长度的地址和键传递给未初始化的函数。然后在函数中执行此操作- void test(char text[], char testCipher[], int *längd, int *nyckel) { int i = 0; int j = 0; while(text[i] != '\0') { i++; } *längd = i - 1; while(text[j] != '\0') { if(text[j] >= 'a' &&am

您将
长度的地址和
键传递给未初始化的函数。然后在函数中执行此操作-

void test(char text[], char testCipher[], int *längd, int *nyckel)

{

 int i = 0;
 int j = 0;

  while(text[i] != '\0')
  {
   i++;
  }

 *längd = i - 1;

  while(text[j] != '\0')
  {
   if(text[j] >= 'a' && text[j] <= 'z')
   {
     testCipher[j] = text[j] + 3;
     j++;
     *nyckel = *nyckel + 1;
   }
  }
 }



int main()
{

 char plainText[100];
 char cipherText[100];
 int length, key;


  printf("Enter a text you want to encrypt: ");
  fgets(plainText, 99, stdin);

  test(plainText, cipherText, &length, &key);
  printf("%d\n%s\n%d", length, cipherText, key);

 return 0;
}

*nyckel
地址没有值,您正在尝试读取它(基本上我看不到这个变量的用法(?)。在将变量传递到函数或函数中之前,先初始化这两个变量。

考虑当文本包含非字母字符时会发生什么情况--
如果
表示您不使用该字符,并且不继续下一个字符(不要增加
j
),所以你只需再次循环相同的字符…

我初始化了它们,但仍然存在相同的问题。在我使用if语句之前,一切正常。因此,基本上在使用if语句之前,我可以为变量明文提供输入,并获得正确的输出。因此,如果我编写了一个,我将获得输出d,但当我添加if语句时,它停止工作king。请正确格式化您显示的代码。还请删除任何不在您真实代码中的内容。目前情况下,这是一团混乱,sry。我看不到头文件(#include)。主题行令人困惑。
 *nyckel = *nyckel + 1;