c语言:!=无法完成int到char*的转变

img


如图,求解决办法(c语言)。这个从无法完成int到char*的转变 到底是什么意思,为什么看的网课可以跑,自己打出来就跑不了

if(*str!='\0')

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/6396710
  • 这篇博客也不错, 你可以看下C语言字符型char和整型int的关系和示例
  • 除此之外, 这篇博客: 用C语言实现对一个char字符的位操作中的 问题描述: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 要求写一个函数,实现,输入一个char,然后经过一系列的位变换,输出一个newChar
    具体变换要求如下:变换要求

    char changeChar(void)
    {
     char ch = 0 ;
     char newChar = 0;
     char temp[7];//临时变量
     printf("请输入ch:");
     scanf("%d",&ch);
     //itoa()函数是一个进制转换函数
     printf("原来的ch的二进制:%s\n",itoa(ch,temp,2));
     int str[7];
     
     //将char中的每一位分离到str数组中
     for(int j =0;j<=7;j++)
     {
      //化成二进制时,从右数是第几位就像右边移动几位(注意:下标从零开始)然后在与上1
      str[j] = (ch>>j)&1;  //移位操作符
     }
     
      int newStr[7];
      //对原有的每一位进行按要求的具体操作
      //根据要求不同,可以有不同的变换
      newStr[0] = str[1];
      newStr[1] = str[0];
      newStr[2] = str[3];
      newStr[3] = str[4];
      newStr[4] = str[5];
      newStr[5] = str[2];
      newStr[6] = str[6];
      newStr[7] = str[7];
      //将新的位变换后的转变成char
     for(int k = 0;k<=7;k++)
      newChar = newChar +newStr[k]*pow(2,k);
     printf("newChar的二进制表达:%s\n",itoa(newChar,temp,2));
     printf("newChar:%d\n",newChar);
     return newChar;  //范围newChar
     
    }