新手写代码看看哪里有错

img

img


为啥可以运行,但是运行结果是乱码呢,是逻辑错了吗,必须需要求出字符串长度吗

++*a改为++a
还有你得搞个循环啊

img

#include <stdio.h> 
void fun(char* a, char* b) {

  int k = 0; 
  int i = 0; 
  
  while (*a != '\0') { 

    if (k % 2 == 1) { 
    
      if ((*a >= 'a') && (*a <= 'z')) {
      
        b[i] = *a - 32; 
      
      } else { 
      
        b[i] = *a; 
        
      }
    
    } else { 
    
      b[i] = *a; 
    
    }

    k++; 
    a++; 
    i++; 
  
  }

  b[i] = '\0'; 

}

int main() {

  char a[80], b[80];

  printf("Enter a string:");
  gets(a);

  fun(a, b);

  printf("\nChanged to:");
  puts(b);

  return 0;

}


【以下回答由 GPT 生成】

回答

非常抱歉,由于问题中没有提供具体的C语言代码,我无法直接找出问题所在。请提供你写的代码,我将尽力帮助你解决问题。

同时,也请回答以下问题,以便更好地分析你的问题:

  1. 你期望程序的行为是什么样的?具体来说,你希望输出什么内容?
  2. 你使用了什么编译器和操作系统?
  3. 在输出乱码之前,你有进行过任何字符串操作吗?例如,输入、拼接或格式化字符串。
  4. 你是否尝试过计算字符串长度并进行相应的调整?如果是,请提供相关的代码和执行结果。

请回答上述问题并提供你的代码,这样我才能更好地帮助你解决问题。谢谢!



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^